# HG changeset patch # User Christophe Lincoln # Date 1329949595 -3600 # Node ID 601544e5561e3708660deed79a3789ca5b4173fb # Parent 628eb741f4e9f0fdb5bf7b02692b305f94b53e07 Rename: core-xfce --> xfce diff -r 628eb741f4e9 -r 601544e5561e core-xfce/packages.list --- a/core-xfce/packages.list Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,251 +0,0 @@ -915resolution -alsa-lib -alsaplayer -alsa-utils -asunder -atk -attr -beaver -busybox -busybox-pam -bzlib -cairo -cairomm -cdparanoia-III -cdrkit -clearlooks -conspy -curl -dbus -dbus-glib -depmod -desktop-file-utils -dialog -dropbear -e2fsprogs -enchant -epdfview -expat -firefox -fontconfig -freetype -fuse -galculator -gamin -garcon -gcc-lib-base -gcolor2 -GConf -gdbm -get-flash-plugin -gettext-base -get-wifi-firmware -glib -glibc-base -glibmm -gparted -gpxe -grub -gtk+ -gtkdialog -gtkmm -gtk-xfce-engine -hal -hardinfo -hicolor-icon-theme -isapnptools -isomaster -jpeg -kbd-busybox -lcms -leafpad -libcap -libcddb -libcdio -libcomerr -libcrypto -libcurl -libdb -libdrm -libexif -libexo -libfirefox -libgcrypt -libgio -libgiomm -libglade -libgnutls -libgpg-error -libical -libIDL -libidn -libmad -libnotify -libogg -libpng -libsexy -libsigc++ -libsoup -libssl -libtasn1 -libtool -libunique -libusb -libusb-compat -libvorbis -libwebkit -libwnck -libxcb -libxfce4ui -libxfce4util -libxfcegui4 -libxml2 -libxslt -linux -linux-crypto -linux-sound -linux-wireless -locale-de -locale-es -locale-fr -locale-pt_BR -lostirc -lua -lxappearance -lxpanel -lxtask -lzlib -lzma -menu-cache -mercurial -mesa -mhwaveedit -midori -mtpaint -nano -ncurses -ncurses-common -ncursesw -ntfs-3g -ntfsprogs -obconf -openbox -openssl -ORBit2 -osmo -pam -pango -pangomm -parted -patch -pciutils -pcmanfm -pcmciautils -pcre -perl -perl-uri -perl-xml-parser -pixman -polkit -poppler -popt -ppp -python -readline -rp-pppoe -shared-mime-info -slim -slitaz-base-files -slitaz-boot-scripts -slitaz-configs -slitaz-doc -slitaz-icon -slitaz-menus -slitaz-polar-cursors -slitaz-tools -slitaz-tools-boxes -sqlite -startup-notification -sudo -sudoku-savant -suggested-applications -sysfsutils -syslinux -syslinux-extra -tazchroot -tazlito -tazpkg -tazusb -tazweb -tazwok -tcl -thunar -thunar-archive-plugin -thunar-volman -tiff -tk -transmission -transset-df -ttf-dejavu -udev -util-linux-ng-blkid -util-linux-ng-getopt -util-linux-ng-uuid -viewnior -web-applications -wireless_tools -wpa_supplicant -xcb-util -xfce4 -xfce4-icon-theme -xfce4-panel -xfce4-session -xfce4-settings -xfce4-slitaz-config -xfce-utils -xfconf -xfdesktop -xfdesktop-extras -xfwm4 -xfwm4-themes -xorg -xorg-base-fonts -xorg-iceauth -xorg-libfontenc -xorg-libICE -xorg-libpciaccess -xorg-libSM -xorg-libX11 -xorg-libXau -xorg-libXaw -xorg-libXcomposite -xorg-libXcursor -xorg-libXdamage -xorg-libXdmcp -xorg-libXext -xorg-libXfixes -xorg-libXfont -xorg-libXft -xorg-libXi -xorg-libXinerama -xorg-libxkbfile -xorg-libXmu -xorg-libXp -xorg-libXpm -xorg-libXrandr -xorg-libXrender -xorg-libXss -xorg-libXt -xorg-libXtst -xorg-libXxf86vm -xorg-rgb -xorg-server -xorg-setxkbmap -xorg-xauth -xorg-xcompmgr -xorg-xf86-input-evdev -xorg-xf86-video-vesa -xorg-xkbcomp -xorg-xkeyboard-config -xterm -zlib diff -r 628eb741f4e9 -r 601544e5561e core-xfce/receipt --- a/core-xfce/receipt Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -# SliTaz flavor receipt. - -FLAVOR="core-xfce" -SHORT_DESC="SliTaz Core with XFCE Desktop, Firefox and Mercurial" -VERSION="20100512" -MAINTAINER="miltonsj@gmail.com" - -FRUGAL_RAM="320M" -ROOTFS_SIZE="252.8M" -INITRAMFS_SIZE="54.3M" -ISO_SIZE="57.1M" diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootcd/README --- a/core-xfce/rootcd/README Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -README SliTaz GNU/Linux CD -=============================================================================== - - -Check the index.html page for more information - - -LICENSE -------- - -Copyright (c) 2006-2012 SliTaz GNU/Linux - -SliTaz is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. - -SliTaz is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with SliTaz; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 -USA diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootcd/index.html --- a/core-xfce/rootcd/index.html Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ - - - - SliTaz GNU/Linux - CD - - - - - - - - - - -
- - -
-

LiveCD information

- -

English

-

- Welcome to the SliTaz GNU/Linux cdrom. To boot SliTaz from a cdrom - just burn the ISO image onto a blank disc. Then reboot your computer - with the disc in your cdrom drive. -

-

- SliTaz is a micro GNU/Linux distro using BusyBox, a Linux kernel, - and GNU free software. SliTaz also uses goodies from the Debian - project. The goal of SliTaz is to have a GNU/Linux distro working - entirely in memory (RAM) and fully installable to a HD for desktop or - server usage. -

-

- On the system you will find documentation in /usr/share/doc and the - full GPL license in /usr/share/licenses. -

- -

Français

-

- Bienvenue sur la page d'index d'un cdrom de SliTaz GNU/Linux. - Vous devez démarrez votre ordinateur avec le cdrom dans le lecteur - CD ou DVD, pour lancer SliTaz en RAM et sans risques pour la - machine hôte. -

-

- SliTaz peut fonctionner des mois entiers sans redémarrer, le système - peut fonctionner dans 144 Mb de mémoire vive et sur des machines - sans disque dur. Mais SliTaz est aussi pleinement installable sur - un disque dur et largement extensible via le gestionnaire de - paquets et la compilation de nouvelles applications depuis les - sources. -

- - -
- - - - - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootcd/style.css --- a/core-xfce/rootcd/style.css Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* CSS style for SliTaz GNU/Linux generic xHTML files. */ - -html { min-height: 102%; } - -body { - background: #ffffff; - color: black; - font: 13px sans-serif, vernada, arial; - margin: 0; - min-width: 640px; -} - -a { text-decoration: underline; color: #215090; } -a:hover { text-decoration: none; color: blue; } -img { border: 0pt none; vertical-align: middle; } -h2 { color: #444; } -h3 { color: #666; font-size: 140%; } - -#header { - height: 40px; - background: #351a0a; -} - -#header h1 { - margin: 0; - padding: 8px 0 0 8px; - width: 250px; - color: white; - font-size: 20px; - font-style: italic; -} - -#header h1 a { - color: white; - text-decoration: none; - font-size: 20px; - font-style: italic; -} - -#header h1 a:hover, #network a:hover { - color: #d66018; -} - -#network { - float: right; - padding: 12px 5px 0; - font-size: 12px; -} - -#network a { padding: 0 6px; } - -#network a { - color: #fff; - font-weight: bold; - text-decoration: none; -} - -#block { - min-height: 8px; - background: #d66018; - padding: 0; - border-bottom: 1px solid #f5f5f5; -} - -#content { - padding: 30px 80px; - text-align: justify; -} - -#footer { - text-align: center; - border-top: 1px solid #ddd; - padding: 40px; - color: #666; -} - -#footer a { color: #666; padding: 0 2px; } diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/init.d/bootopts.sh --- a/core-xfce/rootfs/etc/init.d/bootopts.sh Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,212 +0,0 @@ -#!/bin/sh -# /etc/init.d/bootopts.sh - SliTaz boot options from the cmdline. -# -# Earlier boot options are in rcS, ex: config= and modprobe= -# -. /etc/init.d/rc.functions - -# Update fstab for swapon/swapoff -add_swap_in_fstab() -{ - grep -q "$1 " /etc/fstab || cat >> /etc/fstab <> /etc/passwd - echo "$USER::14035:0:99999:7:::" >> /etc/shadow - echo "$USER:x:1000:" >> /etc/group - echo "$USER:!::" >> /etc/gshadow - status - # Audio and cdrom group. - addgroup $USER audio - addgroup $USER cdrom - # /home/$USER files from /etc/skel. - if [ -d /etc/skel ]; then - cp -a /etc/skel /home/$USER - # Path for user desktop files. - for i in /home/$USER/.local/share/applications/*.desktop - do - sed -i s/"user_name"/"$USER"/g $i - done - else - mkdir -p /home/$USER - fi - # Set permissions. - chown -R $USER.$USER /home/$USER - # Slim default user. - if [ -f /etc/slim.conf ]; then - sed -i s/"default_user .*"/"default_user $USER"/\ - /etc/slim.conf - fi -fi - -# Parse /proc/cmdline for boot options. -echo "Parsing kernel cmdline for SliTaz live options... " - -for opt in `cat /proc/cmdline` -do - case $opt in - eject) - # Eject cdrom. - eject /dev/cdrom ;; - autologin) - # Autologin option to skip first graphic login prompt. - echo "auto_login yes" >> /etc/slim.conf ;; - lang=*) - # Check for a specified locale (lang=*). - LANG=${opt#lang=} - echo -n "Setting system locale to: $LANG... " - echo "LANG=$LANG" > /etc/locale.conf - echo "LC_ALL=$LANG" >> /etc/locale.conf - [ ! -d /usr/lib/locale/$LANG ] && localedef \ - -i $LANG -c -f UTF-8 /usr/lib/locale/$LANG & - status ;; - kmap=*) - # Check for a specified keymap (kmap=*). - KEYMAP=${opt#kmap=} - echo -n "Setting system keymap to: $KEYMAP..." - echo "$KEYMAP" > /etc/keymap.conf - status ;; - home=*) - # Check for a specified home partition (home=*) and check for - # user home dir. Note: home=usb is a shorter and easier way to - # have home=/dev/sda1. - DEVICE=${opt#home=} - [ "$DEVICE" = "usb" ] && DEVICE=sda1 - echo "Home has been specified to $DEVICE..." - USBDELAY=`cat /sys/module/usb_storage/parameters/delay_use` - USBDELAY=$((1+$USBDELAY)) - echo "Sleeping $USBDELAY s to let the kernel detect the device... " - sleep $USBDELAY - USER=`cat /etc/passwd | grep 1000 | cut -d ":" -f 1` - DEVID=$DEVICE - if [ -x /sbin/blkid ]; then - # Can be a label, uuid or devname. DEVID gives us first: /dev/name. - DEVID=`/sbin/blkid | grep $DEVICE | cut -d: -f1` - DEVID=${DEVID##*/} - fi - if [ -n "$DEVID" ] && grep -q "$DEVID" /proc/partitions ; then - echo "Mounting /home on /dev/$DEVID... " - [ -d /home/$USER ] && mv /home/$USER /tmp/$USER-files - mount /dev/$DEVID /home -o uid=1000,gid=1000 2>/dev/null \ - || mount /dev/$DEVID /home - # Check if swap file must be generated in /home: swap=size (Mb). - # This option is only used within home=device. - if grep -q "swap=[1-9]*" /proc/cmdline; then - SWAP_SIZE=`cat /proc/cmdline | sed 's/.*swap=\([^ ]*\).*/\1/'` - # DD to gen a virtual disk. - echo "Generating swap file: /home/swap ($SWAP_SIZE)..." - dd if=/dev/zero of=/home/swap bs=1M count=$SWAP_SIZE - # Make the Linux swap filesystem. - mkswap /home/swap - add_swap_in_fstab /home/swap - fi - else - echo "Unable to find $DEVICE... " - fi - # Move all user dir if needed. - if [ ! -d "/home/$USER" ] ; then - mv /tmp/$USER-files /home/$USER - chown -R $USER.$USER /home/$USER - else - rm -rf /tmp/$USER-files - fi - # Install all packages in /home/boot/packages. In live CD and - # USB mode the option home= mounts the device on /home, so we - # already have a boot directory with the Kernel and rootfs. - if [ -d "/home/boot/packages" ]; then - for pkg in /home/boot/packages/*.tazpkg - do - tazpkg install $pkg - done - fi ;; - laptop) - # Laptop option to load related Kernel modules. - echo "Loading laptop modules: ac, battery, fan, yenta_socket..." - for mod in ac battery fan yenta_socket - do - modprobe $mod - done - grep -qs batt /etc/lxpanel/default/panels/panel || - sed -i 's/= cpu/= batt\n}\n\nPlugin {\n type = cpu/' \ - /etc/lxpanel/default/panels/panel 2> /dev/null - # Enable Kernel Laptop mode. - echo "5" > /proc/sys/vm/laptop_mode ;; - mount) - # Mount all ext3 partitions found (opt: mount). - # Get the list of partitions. - DEVICES_LIST=`fdisk -l | grep 83 | cut -d " " -f 1` - # Mount filesystems rw. - for device in $DEVICES_LIST - do - name=${device#/dev/} - # Device can be already used by home=usb. - if ! mount | grep ^$device >/dev/null; then - echo "Mounting partition: $name on /mnt/$name" - mkdir /mnt/$name - mount $device /mnt/$name - fi - done ;; - mount-packages) - # Mount and install packages-XXX.iso (useful without Internet - # connection). - PKGSIGN="LABEL=\"packages-$(cat /etc/slitaz-release)\" TYPE=\"iso9660\"" - PKGDEV=$(blkid | grep "$PKGSIGN" | cut -d: -f1) - [ -z "$PKGDEV" -a -L /dev/cdrom ] && \ - PKGDEV=$(blkid /dev/cdrom | grep "$PKGSIGN" | cut -d: -f1) - if [ -n "$PKGDEV" ]; then - echo -n "Mounting packages archive from $PKGDEV..." - mkdir /packages && mount -t iso9660 -o ro $PKGDEV /packages - status - /packages/install.sh - fi ;; - wm=*) - # Check for a Window Manager (for a flavor, default WM can be changed - # with boot options or with an addfile in /etc/X11/wm.default. - WM=${opt#wm=} - mkdir -p /etc/X11 - case $WM in - jwm) - echo "jwm" > /etc/X11/wm.default ;; - ob|openbox|openbox-session) - echo "openbox" > /etc/X11/wm.default ;; - e17|enlightenment|enlightenment_start) - echo "enlightenment" > /etc/X11/wm.default ;; - esac ;; - *) - continue ;; - esac -done - -# If no default WM fallback to Openbox (we never know). -if [ ! -f /etc/X11/wm.default ]; then - echo "openbox" > /etc/X11/wm.default -fi - -# Activate an eventual swap file or partition. -if [ "`fdisk -l | grep swap`" ]; then - for SWAP_DEV in `fdisk -l | grep swap | awk '{ print $1 }'`; do - echo "Swap memory detected on: $SWAP_DEV" - add_swap_in_fstab $SWAP_DEV - done -fi -if grep -q swap /etc/fstab; then - echo "Activating swap memory..." - swapon -a -fi diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/init.d/network.sh --- a/core-xfce/rootfs/etc/init.d/network.sh Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,216 +0,0 @@ -#!/bin/sh -# /etc/init.d/network.sh - Network initialization boot script. -# Config file is: /etc/network.conf -# -. /etc/init.d/rc.functions - -if [ -z "$2" ]; then - . /etc/network.conf -else - . $2 -fi - - -Boot() { - # Set hostname. - echo -n "Setting hostname..." - /bin/hostname -F /etc/hostname - status - - # Configure loopback interface. - echo -n "Configuring loopback..." - /sbin/ifconfig lo 127.0.0.1 up - /sbin/route add 127.0.0.1 lo - status -} - - -eth() { -# Use ethernet - ifconfig $INTERFACE up -} - -wifi() { - # For wifi. Users just have to enable it through yes and usually - # essid any will work and the interface is autodetected. - if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then - ifconfig $INTERFACE down - - # Confirm if $WIFI_INTERFACE is the wifi interface - if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then - echo "$WIFI_INTERFACE is not a wifi interface, changing it." - WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ - while read dev; do iwconfig $dev 2>&1 | \ - grep -iq "essid" && { echo $dev ; break; }; \ - done) - [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf - fi - - echo -n "Configuring $WIFI_INTERFACE..." - ifconfig $WIFI_INTERFACE up - if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then - iwconfig $WIFI_INTERFACE txpower on - fi - status - - [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" - - - IWCONFIG_ARGS="" - [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" - [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" - - if [ "$WIFI_KEY_TYPE" == "" ]; then - iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS - fi - - [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in - wep|WEP) - IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY" - iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS -# wpa_supplicant can also deal with wep encryption but iwconfig is preferred -# Tip: Use unquoted strings for hexadecimal key in wep_key0 -# cat /etc/wpa_supplicant.conf > /tmp/wpa.conf -# cat >> /tmp/wpa.conf < /tmp/wpa.conf # load pre-configured multiple profiles - cat >> /tmp/wpa.conf < /tmp/wpa.conf - cat >> /tmp/wpa.conf <> /etc/resolv.conf - done - fi -} - -# Stopping everything -Stop() { - echo "Stopping all interfaces" - ifconfig $INTERFACE down - ifconfig $WIFI_INTERFACE down - - echo "Killing all daemons" - killall udhcpc - killall wpa_supplicant 2>/dev/null - - if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then - echo "Shutting down wifi card" - iwconfig $WIFI_INTERFACE txpower off - fi -} - -Start() { - eth - wifi - dhcp - static_ip -} - - -# looking for arguments: -if [ -z "$1" ]; then - Boot - Start -else - case $1 in - start) - Start ;; - stop) - Stop ;; - restart) - Stop - Start ;; - *) - echo "" - echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" - echo "" - echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m" - echo -e " You can specify another configuration file in the second argument:" - echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf" - echo "" - - esac -fi diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/lxpanel/default/panels/panel --- a/core-xfce/rootfs/etc/lxpanel/default/panels/panel Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -# lxpanel config file. Manually editing is not recommended. -# Use preference dialog in lxpanel to adjust config when you can. - -Global { - edge=bottom - allign=center - margin=0 - widthtype=percent - width=100 - height=24 - transparent=1 - tintcolor=#000000 - alpha=0 - autohide=0 - heightwhenhidden=2 - setdocktype=1 - setpartialstrut=1 - usefontcolor=1 - fontcolor=#ffffff - background=0 - backgroundfile=/usr/share/lxpanel/images/background.png - iconsize=24 -} - -Plugin { - type = space - Config { - Size=4 - } -} - -Plugin { - type = menu - Config { - image=/usr/share/pixmaps/slitaz-menu.png - system { - } - separator { - } - item { - image=/usr/share/icons/SliTaz/16x16/categories/applications-system.png - command=run - } - separator { - } - item { - image=/usr/share/pixmaps/logout.png - command=logout - } - } -} - -Plugin { - type = space - Config { - Size=4 - } -} - -Plugin { - type = launchbar - Config { - Button { - id=xterm.desktop - } - Button { - id=midori.desktop - } - } -} - -Plugin { - type = pager -} - -Plugin { - type = wincmd - Config { - image=window-manager - Button1=iconify - Button2=shade - Toggle=0 - } -} - -Plugin { - type = taskbar - expand=1 - Config { - tooltips=1 - IconsOnly=0 - ShowAllDesks=0 - UseMouseWheel=1 - UseUrgencyHint=1 - FlatButton=1 - MaxTaskWidth=200 - spacing=1 - GroupedTasks=0 - } -} - -Plugin { - type = space - Config { - Size=4 - } -} - -Plugin { - type = tray -} - -Plugin { - type = volumealsa -} - -Plugin { - type = space - Config { - Size=4 - } -} - -Plugin { - type = netstatus - Config { - iface=eth0 - configtool=subox netbox %i - } -} - -Plugin { - type = space - Config { - Size=4 - } -} - -Plugin { - type = batt - Config { - HideIfNoBattery=0 - AlarmCommand=xmessage Battery low - AlarmTime=5 - BackgroundColor=black - BorderWidth=1 - ChargingColor1=#28f200 - ChargingColor2=#22cc00 - DischargingColor1=#ffee00 - DischargingColor2=#d9ca00 - Size=8 - } -} - -Plugin { - type = cpu -} - -Plugin { - type = space - Config { - Size=2 - } -} - -Plugin { - type = launchbar - Config { - Button { - id=tazpkgbox.desktop - } - } -} - -Plugin { - type = dclock - Config { - ClockFmt=%R - TooltipFmt=%A %x - Action=desktopbox calendar - BoldFont=0 - IconOnly=0 - } -} - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/skel/.Xdefaults --- a/core-xfce/rootfs/etc/skel/.Xdefaults Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -!~/.Xdefault: Control the behavior of x-clients. -! - -! Xcursor theme (~/.icons). -! -Xcursor.theme: slitaz-polar - -! XTerm settings. -! -xterm*background: black -xterm*foreground: white -xterm*cursorColor: #6AA2D8 -xterm*scrollBar: off -xterm*faceName: DejaVu Sans Mono -xterm*faceSize: 9 - -! Xload settings. -! -!xload*background: black -!xload*foreground: lightblue diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/skel/.config/pcmanfm/main --- a/core-xfce/rootfs/etc/skel/.config/pcmanfm/main Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -[General] -big_icon_size=32 -terminal=xterm - -[Window] -width=640 -height=480 -splitter_pos=160 -maximized=0 - -[Desktop] -show_desktop=1 -show_wallpaper=1 -wallpaper=/usr/share/images/slitaz-background.jpg -show_wm_menu=1 diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/skel/.gtkrc-2.0 --- a/core-xfce/rootfs/etc/skel/.gtkrc-2.0 Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -# ~/.gtkrc-2.0 - GTK+ theme, icon and font configuration. -# -# System files : /usr/share/{themes,icons,fonts} -# Personal files : ~/.icons and ~/.fonts -# - -gtk-theme-name = "SliTaz" -#gtk-theme-name = "Clearlooks-DeepSky" -#gtk-theme-name = "Clearlooks-Olive" - -gtk-icon-theme-name = "SliTaz" - -gtk-font-name = "DejaVu Sans 9" diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/skel/.netsurf/Choices --- a/core-xfce/rootfs/etc/skel/.netsurf/Choices Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -http_proxy:0 -http_proxy_host: -http_proxy_port:8080 -http_proxy_auth:0 -http_proxy_auth_user: -http_proxy_auth_pass: -font_size:128 -font_min_size:85 -font_sans:Sans -font_serif:Serif -font_mono:Monospace -font_cursive:Serif -font_fantasy:Serif -accept_language: -accept_charset: -memory_cache_size:2097152 -disc_cache_age:28 -block_advertisements:0 -minimum_gif_delay:10 -send_referer:1 -animate_images:1 -expire_url:28 -font_default:1 -ca_bundle: -ca_path:/etc/ssl/certs -homepage_url:file:///usr/share/webhome/netsurf.html -url_suggestion:1 -window_x:40 -window_y:40 -window_width:800 -window_height:600 -window_screen_width:0 -window_screen_height:0 -toolbar_status_size:0 -scale:100 -incremental_reflow:1 -min_reflow_period:25 -max_fetchers:24 -max_fetchers_per_host:5 -max_cached_fetch_handles:6 -suppress_curl_debug:1 -target_blank:1 -button_2_tab:1 -margin_top:10 -margin_bottom:10 -margin_left:10 -margin_right:10 -export_scale:70 -suppress_images:0 -remove_backgrounds:0 -enable_loosening:1 -enable_PDF_compression:1 -enable_PDF_password:0 -render_resample:0 -downloads_clear:0 -request_overwrite:1 -show_single_tab:0 -button_type:1 -disable_popups:0 -disable_plugins:0 -history_age:0 -hover_urls:0 -focus_new:0 -new_blank:0 diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/skel/Desktop/slitaz-doc.desktop --- a/core-xfce/rootfs/etc/skel/Desktop/slitaz-doc.desktop Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -[Desktop Entry] -Name=Documentation -Exec=GtkLauncher file:///usr/share/doc/slitaz/index.html -Icon=slitaz-doc.png -Type=Application diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/slitaz/applications.conf --- a/core-xfce/rootfs/etc/slitaz/applications.conf Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -# SliTaz default applications configuration file. Thes apps can be -# started throught wrappers: browser, editor and terminal. -# - -# File manager. -FILE_MANAGER="pcmanfm" - -# Web browser. -BROWSER="midori" - -# Text editor. -EDITOR="leafpad" - -# X terminal. -TERMINAL="xterm" - -# Window manager. -WINDOW_MANAGER="openbox" diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/xdg/openbox/menu.en.xml --- a/core-xfce/rootfs/etc/xdg/openbox/menu.en.xml Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,134 +0,0 @@ - - - - - - - - file-manager - - - terminal - - - browser - - - editor - - - - desktopbox tazapps - - - - - - - desktopbox new-folder - - - desktopbox new-file - - - - desktopbox add-icons - - - - - - - xcompmgr - - - xcompmgr -c -r 10 - - - xcompmgr -c -f -r 10 - - - - - transset-df --actual --max 60 - - - - - transset-df --click --max 60 - - - - - killall xcompmgr - - - - - - - subox tazlitobox - - - subox tazusbbox - - - - - subox "xterm -e tazusb writefs gzip" - - - - - subox "xterm -e tazusb writefs lzma" - - - - - subox "xterm -e tazusb writefs none" - - - - - - - - obconf - - - - desktopbox autostart - - - - - editor ~/.config/openbox/menu.xml - - - - - - - - - - - - - - - - - - - - - - - - desktopbox logout - - - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/xdg/openbox/menu.fr.xml --- a/core-xfce/rootfs/etc/xdg/openbox/menu.fr.xml Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ - - - - - - - - file-manager - - - terminal - - - browser - - - editor - - - - desktopbox tazapps - - - - - - - desktopbox new-folder - - - desktopbox new-file - - - - desktopbox add-icons - - - - - - - xcompmgr - - - xcompmgr -c -r 10 - - - xcompmgr -c -f -r 10 - - - - - transset-df --actual --max 60 - - - - - transset-df --click --max 60 - - - - - killall xcompmgr - - - - - - - subox tazlitobox - - - subox tazusbbox - - - - - subox "xterm -e tazusb writefs gzip" - - - - - subox "xterm -e tazusb writefs lzma" - - - - - subox "xterm -e tazusb writefs none" - - - - - - - - obconf - - - - desktopbox autostart - - - - - editor ~/.config/openbox/menu.xml - - - - - - - - - - - - - - - - - - - - - - - - - desktopbox logout - - - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/xdg/openbox/menu.pt.xml --- a/core-xfce/rootfs/etc/xdg/openbox/menu.pt.xml Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,134 +0,0 @@ - - - - - - - - pcmanfm - - - terminal - - - browser - - - editor - - - - desktopbox tazapps - - - - - - - desktopbox new-folder - - - desktopbox new-file - - - - desktopbox add-icons - - - - - - - xcompmgr - - - xcompmgr -c -r 10 - - - xcompmgr -c -f -r 10 - - - - - transset-df --actual --max 60 - - - - - transset-df --click --max 60 - - - - - killall xcompmgr - - - - - - - subox tazlitobox - - - subox tazusbbox - - - - - subox "xterm -e tazusb writefs gzip" - - - - - subox "xterm -e tazusb writefs lzma" - - - - - subox "xterm -e tazusb writefs none" - - - - - - - - obconf - - - - desktopbox autostart - - - - - editor ~/.config/openbox/menu.xml - - - - - - - - - - - - - - - - - - - - - - - - desktopbox logout - - - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/etc/xdg/openbox/rc.xml --- a/core-xfce/rootfs/etc/xdg/openbox/rc.xml Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,699 +0,0 @@ - - - - - 10 - 20 - - - yes - - no - - yes - - no - - 200 - - no - - - - Smart - -
yes
- - Any - -
- - SliTaz - NLIMC - - yes - yes - - Sans - 8 - - Bold - - Normal - - - - Sans - 8 - - Bold - - Normal - - - - Sans - 10 - - Normal - - Normal - - - - Sans - 9 - - Normal - - Normal - - - - sans - 9 - - bold - - normal - - - - - - 2 - 1 - - - - 875 - - - - yes - Nonpixel - - Center - - - - 10 - - 10 - - - - - - 0 - 0 - 0 - 0 - - - TopLeft - - 0 - 0 - no - Above - - Vertical - - no - 300 - - 300 - - Middle - - - - C-g - - - - no - no - - - - - no - no - - - - - no - no - - - - - no - no - - - - - no - no - - - - - no - no - - - - - no - no - - - - - no - no - - - - - 1 - - - - - 2 - - - - - 3 - - - - - 4 - - - - - - - - - - - - - - - - - client-menu - - - - - - - - - - - - yes - yes - - - - - - - true - App Launcher - - lxpanelctl run - - - - - 8 - - 200 - - 400 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - client-menu - - - - - - - - - - - - top - - - - - - - - - - - left - - - - - - - - - - - right - - - - - - - - - - - bottom - - - - - - - - - - - - client-menu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - client-menu - - - - - - - client-menu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - client-list-combined-menu - - - - - root-menu - - - - - - - - - - - - - - - - - - - - - - menu.xml - 200 - - no - - 100 - - yes - - yes - - - - - -
diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/root/.Xdefaults --- a/core-xfce/rootfs/root/.Xdefaults Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -!~/.Xdefault: Control the behavior of x-clients. -! - -! Xcursor theme (~/.icons). -! -Xcursor.theme: slitaz-polar - -! XTerm settings. -! -xterm*background: black -xterm*foreground: white -xterm*cursorColor: #6AA2D8 -xterm*scrollBar: off -xterm*faceName: DejaVu Sans Mono -xterm*faceSize: 9 - -! Xload settings. -! -!xload*background: black -!xload*foreground: lightblue diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/root/.gtkrc-2.0 --- a/core-xfce/rootfs/root/.gtkrc-2.0 Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -# ~/.gtkrc-2.0 - GTK+ theme, icon and font configuration. -# -# System files : /usr/share/{themes,icons,fonts} -# Personal files : ~/.icons and ~/.fonts -# - -gtk-theme-name = "SliTaz" -#gtk-theme-name = "Clearlooks-DeepSky" -#gtk-theme-name = "Clearlooks-Olive" - -gtk-icon-theme-name = "SliTaz" - -gtk-font-name = "DejaVu Sans 9" diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/sbin/tazlocale --- a/core-xfce/rootfs/sbin/tazlocale Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -#!/bin/sh -# -# Tazlocale: SliTaz GNU/Linux locale setting using dialog boxes. -# Configuration file is : /etc/locale.conf -# -# 20100201 - GNU gpl. -# - -# Check if user is root. -if test $(id -u) != 0; then - echo -e "\nYou must be root to run `basename $0`!" - echo -e "Type su and root password to become super-user.\n" - exit 1 -fi - -get_messages() -{ - [ -f "/etc/locale.conf" ] && . /etc/locale.conf - LANGUAGE=${LANG%_*} - [ "$LANG" = "C" ] && LANGUAGE="en_US" - case $LANGUAGE in - fr*) - RECONFIG_MSG=" -Veuilliez fermer votre session et vous reloguer pour utiliser SliTaz \ -avec la locale : $LANG" ;; - *) - RECONFIG_MSG=" -Please logout of your current session and login again to use SliTaz \ -with $LANG locale." ;; - esac -} - -# Create symlink to translated files provide by SliTaz language pack, -# doc and config files. -link_language_files() -{ - . /etc/locale.conf - LANGUAGE=${LANG%_*} - [ "$LANG" = "C" ] && LANGUAGE="en" - # Openbox menu in /usr/share/doc/slitaz - if [ -f /etc/xdg/openbox/menu.$LANGUAGE.xml ]; then - cd /etc/xdg/openbox && rm -f menu.xml - ln -s menu.$LANGUAGE.xml menu.xml - fi - # Documentation in /usr/share/doc/slitaz - if [ -f /usr/share/doc/slitaz/index.$LANGUAGE.html ]; then - cd /usr/share/doc/slitaz && rm -f index.html - ln -s index.$LANGUAGE.html index.html - fi - # SliTaz Software Manuals - for soft in tazpkg tazlito tazusb tazwok - do - if [ -f /usr/share/doc/$soft/$soft.$LANGUAGE.html ]; then - cd /usr/share/doc/$soft && rm -f $soft.html - ln -s $soft.$LANGUAGE.html $soft.html - fi - done -} - -# Locale name displayed. -get_locale_name() -{ - for i in `ls -1 /usr/share/i18n/locales/ | grep ^[a-z][a-z]_[A-Z][A-Z]` - do - #name=`locale -a -v | grep -A 2 "locale: $i" | grep "title" | \ - # cut -d " " -f 7` - echo "$i Locale" - done -} - -# We have no locale files in /usr/lib/locale by default. Run localedef in -# background to have a faster boot. -gen_utf8_locale() -{ - localedef -i $locale -c -f UTF-8 /usr/lib/locale/$locale & -} - -# Dialog menu. -dialog_menu() -{ - exec 3>&1 - locale=`$DIALOG --clear \ - --title " SliTaz language configuration " \ - --menu "" 15 70 5 \ -"en" "English" \ -$(get_locale_name) \ -2>&1 1>&3` - retval=$? - exec 3>&- - case $retval in - 0) - continue ;; - 1) - echo "Cancel pressed." - exit 0 ;; - 255) - if test -n "$locale"; then - echo "$locale" - else - echo "ESC pressed." - exit 0 - fi ;; - esac - # Default: C = English - [ "$locale" = "en" ] && locale="en_US" - [ -s /etc/locale.conf ] && RECONFIG="yes" - # System configuration - echo "LANG=$locale" > /etc/locale.conf - echo "LC_ALL=$locale" >> /etc/locale.conf - export LANG=$locale LC_ALL=$locale - gen_utf8_locale - get_messages - # If it's a reconfiguration give an info message. - if [ -n "$RECONFIG" ]; then - $DIALOG --clear \ - --title " Information " \ - --msgbox "$RECONFIG_MSG" 16 70 - fi -} - -case "$1" in - *_*) - # Execute functions (can be called from an other apps). - $1 ;; - link-files) - link_language_files ;; - list) - echo "" - locale -a - echo "" ;; - *) - : ${DIALOG=dialog} - dialog_menu - link_language_files ;; -esac - -exit 0 diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/bin/slitaz-installer --- a/core-xfce/rootfs/usr/bin/slitaz-installer Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1051 +0,0 @@ -#!/bin/sh -# slitaz-installer - SliTaz GNU/Linux installer. -# -# So this is SliTaz installer using dialog boxes. All the comments are in -# English but displayed messages are in French. The script starts with a -# few main variables, then all the functions and then a sequence of functions. -# -# (C) 2007-2009 SliTaz - GNU General Public License v3. -# -# Author : Christophe Lincoln -# -VERSION=2.0 - -: ${DIALOG=dialog} - -# We need to know cdrom device and kernel version string to copy files. -DRIVE_NAME=`cat /proc/sys/dev/cdrom/info | grep "drive name" | cut -f 3` -CDROM=/dev/$DRIVE_NAME -KERNEL=vmlinuz-`uname -r` -TARGET_ROOT=/mnt/target -LOG=/var/log/slitaz-installer.log -BACKLIST="SliTaz GNU/Linux installer" -ACTION=$1 - -####################### -# Installer functions # -####################### - -# Messages language setting. -set_messages() -{ - case $LANG in - de*) - . /usr/share/slitaz/messages/de/installer.msg ;; - fr*) - . /usr/share/slitaz/messages/fr/installer.msg ;; - hu*) - . /usr/share/slitaz/messages/hu/installer.msg ;; - pt*) - . /usr/share/slitaz/messages/pt/installer.msg ;; - *) - . /usr/share/slitaz/messages/en/installer.msg ;; - esac -} - -# Display error message. -error_message() -{ - $DIALOG --title " Error " \ - --colors --backtitle "$BACKLIST" \ - --clear --msgbox "\n$ERROR_MSG" 18 70 -} - -# Exit install if user is not root. -check_root() -{ - if test $(id -u) != 0 ; then - ERROR_MSG="\ -[\Z6en\Zn] You must be root administrator to start SliTaz installer, please \ -use 'su' to get a root SHell and restart installation.\n\n -[\Z6fr\Zn] Vous devez être root pour installer SLiTaz GNU/Linux. Vous pouvez \ -utiliser 'su' suivi du mot de passe administrateur pour devenir root \ -et relancer l'installation." - error_message - exit 0 - fi -} - -# This function is used after each screen to contine or abort install. -check_retval() -{ - case $retval in - 0) - continue ;; - 1) - echo -e "\nVoluntary exit.\n" && exit 0 ;; - 3) - continue ;; - 255) - echo -e "ESC pressed.\n" && exit 0 ;; - esac -} - -# Start install with basic information. -start_installer() -{ - $DIALOG --title " Install or Upgrade " \ - --backtitle "$BACKLIST" \ - --extra-button --extra-label "Upgrade" \ - --ok-label "Install" \ - --clear --colors --yesno "$START_INSTALL_MSG" 18 70 - retval=$? - case $retval in - 0) - ACTION=install ;; - 1) - echo -e "\nVoluntary exit.\n" && exit 0 ;; - 3) - ACTION=upgrade ;; - 255) - echo -e "ESC pressed.\n" && exit 0 ;; - esac - echo "start_installer: `date`" > $LOG -} - -# Mount cdrom and verify if it's really SliTaz CD. -mount_cdrom() -{ - ERROR_MSG="" - ( - echo "XXX" && echo 30 - echo -e "\nCreating mount point (/media/cdrom)..." - echo "XXX" - mkdir -p /media/cdrom - sleep 1 - # First try to mount a cdrom - if mount -t iso9660 $CDROM /media/cdrom 2>>$LOG; then - echo "XXX" && echo 60 - echo -e "\nUsing file from cdrom ($CDROM)..." - echo "XXX" - sleep 2 - else - # We may be in LiveUSB mode - if [ -d /home/boot ]; then - echo "XXX" && echo 60 - echo -e "\nUsing file from USB device..." - echo "XXX" - rm /media/cdrom/boot 2>/dev/null - ln -s /home/boot /media/cdrom/boot - sleep 2 - fi - fi - - echo "XXX" && echo 90 - echo -e "\nChecking installation media..." - echo "XXX" - sleep 2 - ) | - $DIALOG --title " Mounting cdrom " \ - --backtitle "$BACKLIST" \ - --gauge "Preparing the installation media..." 18 70 0 - # Exit with error msg if no rootfs.gz found. - if [ ! -f /media/cdrom/boot/rootfs.gz ]; then - ERROR_MSG="$MOUNT_CDROM_ERROR_MSG" - error_message - echo "missing: /media/cdrom/boot/rootfs.gz" >>$LOG - exit 1 - fi -} - -# Display a list of available partitions. -fdisk_list() -{ - LIST_PARTITIONS=`fdisk -l | grep ^/dev | sed s/'e Win95'/'e'/g` - $DIALOG --title " Partition tables " \ - --backtitle "$BACKLIST" \ - --clear --msgbox "\n -Available partitions :\n\n -$LIST_PARTITIONS" 18 70 -} - -# We need a partition to install to (inputbox). -ask_for_target_dev() -{ - exec 3>&1 - TARGET_DEV=`$DIALOG --title " Root Partition " \ - --backtitle "$BACKLIST" --clear \ - --extra-label "List" --extra-button \ - --colors --inputbox "$ASK_FOR_TARGET_DEV_MSG" 18 70 2>&1 1>&3` - retval=$? - exec 3>&- - check_retval - # Display list and come back. - if [ "$retval" = "3" ]; then - fdisk_list - ask_for_target_dev - fi - # Empty value. - if [ -z $TARGET_DEV ]; then - ask_for_target_dev - fi - set_messages - # Check if specified device exists in /proc/partitions. - DEV_NAME=${TARGET_DEV#/dev/} - if cat /proc/partitions | grep -q $DEV_NAME; then - if [ "$DEV_NAME" = "$TARGET_DEV" ]; then - TARGET_DEV="/dev/$DEV_NAME" - fi - echo "ask_for_target_dev: $TARGET_DEV" >>$LOG - else - ERROR_MSG="Partition \Z2$TARGET_DEV\Zn doesn't exist." - error_message - ask_for_target_dev - fi -} - -# Mkfs if needed/wanted on /. -ask_for_mkfs_target_dev() -{ - $DIALOG --title " Format " \ - --backtitle "$BACKLIST" \ - --clear --colors --yesno "$ASK_FOR_MKFS_TARGET_DEV_MSG" 18 70 - retval=$? - case $retval in - 0) - MKFS_TARGET_DEV="ext3" - echo "mkfs_target_dev: ext3" >>$LOG ;; - 1) - CLEAN="clean" - echo "mkfs_target_dev: clean" >>$LOG ;; - 255) - echo -e "ESC pressed.\n" && exit 0 ;; - esac - -} - -# We can have a separate partition for /home. -ask_for_home() -{ - exec 3>&1 - HOME_DEV=`$DIALOG --title " Home Partition " \ - --backtitle "$BACKLIST" --clear \ - --extra-label "List" --extra-button \ - --colors --inputbox " -On most GNU/Linux systems users personal files are stored in the directory \ -/home. Home can be on a separate partition or another hard disk. - -\Z2Home partition to use (Optional):\Zn" 18 70 2>&1 1>&3` - retval=$? - exec 3>&- - check_retval - # Display list and come back. - if [ "$retval" = "3" ]; then - fdisk_list - ask_for_home - fi - if [ -n "$HOME_DEV" ]; then - # Check if specified device exists in /proc/partitions. - DEV_NAME=${HOME_DEV#/dev/} - if cat /proc/partitions | grep -q $DEV_NAME; then - if [ "$DEV_NAME" = "$HOME_DEV" ]; then - HOME_DEV="/dev/$DEV_NAME" - fi - echo "ask_for_home: $HOME_DEV" >>$LOG - else - ERROR_MSG="Partition \Z2$HOME_DEV\Zn doesn't exist." - error_message - ask_for_home - fi - fi -} - -# Mkfs if needed/wanted on /. -ask_for_mkfs_home() -{ - $DIALOG --title " Format " \ - --backtitle "$BACKLIST" \ - --clear --colors --yesno " -Here you can format the /home partition: $HOME_DEV - -SliTaz uses ext3 by default but another filesystem can be used if wanted, \ -for this please adjust /etc/fstab after installation. - -\Z2Do you want to format (Option): $HOME_DEV\Zn" 18 70 - retval=$? - case $retval in - 0) - MKFS_HOME="ext3" - echo "mkfs_home: ext3" >>$LOG ;; - 1) - MKFS_HOME="" - echo "mkfs_home: no" >>$LOG ;; - 255) - echo -e "ESC pressed.\n" && exit 0 ;; - esac - -} - -# Ask for hostname before installing files. -ask_for_hostname() -{ - exec 3>&1 - HOSTNAME=`$DIALOG --title " Hostname " \ - --backtitle "$BACKLIST" --clear \ - --colors --inputbox "$ASK_FOR_HOSTNAME_MSG" 18 70 "slitaz" 2>&1 1>&3` - retval=$? - exec 3>&- - check_retval - # Empty value. - if [ -z $HOSTNAME ]; then - HOSTNAME="slitaz" - fi -} - -# Ask for root password and default user settings. -ask_for_users_settings() -{ - # Root passwd - exec 3>&1 - ROOT_PASSWD=`$DIALOG --title " Root password " \ - --backtitle "$BACKLIST" --clear \ - --colors --nocancel --inputbox " -The root administrator privilege lets you manage and configure the full \ -system. A root user can damage your system so you should always setup a \ -strong password with special characters and/or numbers. - -\Z2Please specify the Root password for your new system:\Zn" 18 70 "root" 2>&1 1>&3` - retval=$? - exec 3>&- - check_retval - # Prevent empty value. - if [ -z $ROOT_PASSWD ]; then - ROOT_PASSWD="root" - fi - # Default user - exec 3>&1 - USER=`$DIALOG --title " User name " \ - --backtitle "$BACKLIST" --clear \ - --colors --nocancel --inputbox " -The default user for the system will have their personal files stored \ -in /home/*user* (and will be automatically added to the audio group). - -\Z2Default user name login:\Zn" 18 70 "tux" 2>&1 1>&3` - retval=$? - exec 3>&- - check_retval - # Prevent empty value. - if [ -z $USER ]; then - USER="tux" - fi - # User passwd - exec 3>&1 - USER_PASSWD=`$DIALOG --title " User password " \ - --backtitle "$BACKLIST" --clear \ - --colors --nocancel --inputbox " -The password for default user $USER. It may be a security risk if too \ -weak and should always be strong if you use a SSH connection through the web. - -\Z2Please specify $USER password:\Zn" 18 70 "tux" 2>&1 1>&3` - retval=$? - exec 3>&- - check_retval - # Prevent empty value. - if [ -z $USER_PASSWD ]; then - USER_PASSWD="tux" - fi -} - -# Tiny summary and last chance to cancel or restart for user. -summary() -{ - $DIALOG --title " Summary " \ - --backtitle "$BACKLIST" \ - --clear --colors --yesno " -Installation settings summary and last chance to cancel or restart all \ -installation steps. - -Root partition: $TARGET_DEV -Home partition: $HOME_DEV -Hostname: $HOSTNAME -Default user: $USER - -\Z2Go and install SliTaz or cancel?\Zn" 18 70 - retval=$? - check_retval -} - -# Mount and mkfs with progress. -prepare_partitions() -{ - ( - echo "XXX" && echo 30 - echo -e "\nPreparing target partition..." - echo "XXX" - # Mount point can be already used. - if mount | grep -q $TARGET_ROOT; then - umount $TARGET_ROOT 2>$LOG - fi - sleep 2 - - if [ "$MKFS_TARGET_DEV" == "ext3" ]; then - echo "XXX" && echo 50 - echo -e "\nExecuting mkfs.ext3 on $TARGET_DEV" - echo "XXX" - mkfs.ext3 $TARGET_DEV >>$LOG 2>>$LOG - else - echo "XXX" && echo 50 - echo -e "\nThe partition ($TARGET_DEV) will be cleaned..." - echo "XXX" - sleep 2 - fi - - if [ "$MKFS_HOME" == "ext3" ]; then - echo "XXX" && echo 70 - echo -e "\nExecuting mkfs.ext3 on $HOME_DEV" - echo "XXX" - mkfs.ext3 -L "Home" $HOME_DEV >>$LOG 2>>$LOG - else - echo "XXX" && echo 70 - echo -e "\nThe partition ($HOME_DEV) will be kept..." - echo "XXX" - sleep 2 - fi - - echo "XXX" && echo 90 - echo -e "\nCreating mount point: $TARGET_ROOT" - echo "XXX" - mkdir -p $TARGET_ROOT - sleep 2 - - ) | - $DIALOG --title " Prepare the target " \ - --backtitle "$BACKLIST" \ - --gauge "Target in preparation..." 18 70 0 - # Mount target. - mount $TARGET_DEV $TARGET_ROOT >>$LOG 2>>$LOG -} - -# Get a clean target device (15%). -clean_target() -{ - if [ "$CLEAN" == "clean" ]; then - echo "XXX" && echo 15 - echo -e "\nCleaning the root partition ($TARGET_DEV)" - echo "XXX" - # Keep /home in case of reinstall. - cd $TARGET_ROOT - for dir in * - do - case "$dir" in - home) - mv $TARGET_ROOT/home $TARGET_ROOT/home.bak - echo "keeping /home found on: $TARGET_DEV" >>$LOG ;; - lost+found) - continue ;; - *) - echo "removing target: $dir" >>$LOG - rm -rf $dir 2>>$LOG ;; - esac - done - if [ -d $TARGET_ROOT/mklost+found ]; then - mklost+found 2>>$LOG - fi - fi - sleep 2 -} - -# Kernel is renamed to standard vmlinuz-$VERSION. -install_kernel() -{ - mkdir -p $TARGET_ROOT/boot - cp /media/cdrom/boot/bzImage $TARGET_ROOT/boot/$KERNEL - echo "install_kernel: $KERNEL" >> $LOG - sleep 2 -} - -# Copy isolinux r/w files (not syslinux, some files are read only). -copy_bootloaders() -{ - if [ -d "/media/cdrom/boot/isolinux" ]; then - mkdir -p $TARGET_ROOT/boot/isolinux - cp -a /media/cdrom/boot/isolinux/*.cfg $TARGET_ROOT/boot/isolinux - cp -a /media/cdrom/boot/isolinux/*.kbd $TARGET_ROOT/boot/isolinux - cp -a /media/cdrom/boot/isolinux/*.txt $TARGET_ROOT/boot/isolinux - cp -a /media/cdrom/boot/isolinux/*.bin $TARGET_ROOT/boot/isolinux - cp -a /media/cdrom/boot/isolinux/*.msg $TARGET_ROOT/boot/isolinux - cp -a /media/cdrom/boot/isolinux/*.lss $TARGET_ROOT/boot/isolinux - cp -a /media/cdrom/boot/isolinux/*.c32 $TARGET_ROOT/boot/isolinux - fi -} - -# Extract lzma'ed or gziped rootfs. -extract_rootfs() -{ - cd $TARGET_ROOT - (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so || \ - cat rootfs.gz) 2>>$LOG | cpio -id 2>>$LOG > /dev/null - rm -f rootfs.gz - # unpack /usr (double check...) - if ls etc/tazlito | grep -q ".extract"; then - for i in etc/tazlito/*.extract; do - [ -f "$i" ] && . $i /media/cdrom - done - fi -} - -# Pre configure freshly installed system (60 - 80%). -pre_config_system() -{ - cd $TARGET_ROOT - # Restore backup of existing /home if exists. - # (created by prepare_target_dev) - if [ -d home.bak ]; then - echo "XXX" && echo 65 - echo -e "\nRestoring directory: /home..." - echo "XXX" - rm -rf home - mv home.bak home - sleep 1 - fi - # Add root device to CHECK_FS in rcS.conf to check filesystem - # on each boot. - echo "XXX" && echo 70 - echo -e "\nAdding $TARGET_DEV and CHECK_FS to file /etc/rcS.conf..." - echo "XXX" - sed -i s#'CHECK_FS=\"\"'#"CHECK_FS=\"$TARGET_DEV\""# etc/rcS.conf - sleep 2 - # Set hostname. - echo "XXX" && echo 80 - echo -e "\nConfiguring host name: $HOSTNAME" - echo "XXX" - echo $HOSTNAME > etc/hostname -} - -# Set root passwd and create user after rootfs extraction. -users_settings() -{ - cat > $TARGET_ROOT/users.sh << _EOF_ -#!/bin/sh -echo "root:$ROOT_PASSWD" | chpasswd -adduser -D -H $USER -addgroup $USER audio -echo "$USER:$USER_PASSWD" | chpasswd -if [ ! -d /home/$USER ]; then - cp -a /etc/skel /home/$USER - chown -R $USER.$USER /home/$USER - # Path for user desktop files. - for i in /home/$USER/.local/share/applications/*.desktop - do - sed -i s/"user_name"/"$USER"/g \$i - done -fi -# Slim default user. -if [ -f /etc/slim.conf ]; then - sed -i s/"default_user .*"/"default_user $USER"/ \ - /etc/slim.conf -fi -_EOF_ - chmod +x $TARGET_ROOT/users.sh - chroot $TARGET_ROOT ./users.sh - rm $TARGET_ROOT/users.sh -} - -# /home can be on a separate partition. If default user exist in /home -# we remove default file crated by users_settings(). -home_config() -{ - echo "home_config: $HOME_DEV" >> $LOG - cd $TARGET_ROOT - mv home/$USER tmp - mount $HOME_DEV home - if [ -d $TARGET_ROOT/home/$USER ]; then - rm -rf tmp/$USER - else - mv tmp/$USER home - fi - echo "$HOME_DEV /home ext3 defaults 0 2" \ - >> etc/fstab - umount home -} - -# Determine GRUB partition number and GRUB disk number. -grub_config() -{ - DISK_LETTER=${TARGET_DEV#/dev/[h-s]d} - DISK_LETTER=${DISK_LETTER%[0-9]} - GRUB_PARTITION=$((${TARGET_DEV#/dev/[h-s]d[a-z]}-1)) - for disk in a b c d e f g h - do - nb=$(($nb+1)) - if [ "$disk" = "$DISK_LETTER" ]; then - GRUB_DISK=$(($nb-1)) - break - fi - done - GRUB_ROOT="(hd${GRUB_DISK},${GRUB_PARTITION})" - # Create the target GRUB configuration. - mkdir -p $TARGET_ROOT/boot/grub - cat > $TARGET_ROOT/boot/grub/menu.lst << _EOF_ -# /boot/grub/menu.lst: GRUB boot loader configuration. -# - -# By default, boot the first entry. -default 0 - -# Boot automatically after 8 secs. -timeout 8 - -# Change the colors. -color yellow/brown light-green/black - -# For booting SliTaz from : $TARGET_DEV -# -title SliTaz GNU/Linux (cooking) (Kernel $KERNEL) -root $GRUB_ROOT -kernel /boot/$KERNEL root=$TARGET_DEV - -_EOF_ - # log - echo "grub_config: $TARGET_ROOT/boot/grub/menu.lst" >>$LOG - sleep 2 -} - -# Files install with gauge, calling for functions or with cmds. -install_files() -{ - ( - - echo "XXX" && echo 10 - echo -e "\nCleaning the root partition if necessary..." - echo "XXX" - clean_target - - echo "XXX" && echo 20 - echo -e "\nInstalling the kernel ($KERNEL)" - echo "XXX" - install_kernel - - echo "XXX" && echo 30 - echo -e "\nCopying the bootloader syslinux/isolinux..." - echo "XXX" - copy_bootloaders - - echo "XXX" && echo 40 - echo -e "\nCopying the compressed system (rootfs.gz)..." - echo "XXX" - cp /media/cdrom/boot/rootfs.gz $TARGET_ROOT - sleep 2 - - echo "XXX" && echo 50 - echo -e "\nExtracting the root system..." - echo "XXX" - extract_rootfs - - echo "XXX" && echo 60 - echo -e "\nPreconfiguring the system..." - echo "XXX" - pre_config_system - - echo "XXX" && echo 70 - echo -e "\nConfiguring root and default $USER account..." - echo "XXX" - users_settings - sleep 2 - - if [ "$HOME_DEV" != "" ]; then - echo "XXX" && echo 80 - echo -e "\nConfiguring $HOME_DEV to be used as /home..." - echo "XXX" - home_config - sleep 2 - fi - - echo "XXX" && echo 90 - echo -e "\nCreating the configuration file for GRUB (menu.lst)..." - echo "XXX" - grub_config - - echo "XXX" && echo 100 - echo -e "\nFinishing the files installation..." - echo "XXX" - echo "install_files: OK" >>$LOG - sleep 2 - - ) | - $DIALOG --title " Install files " \ - --backtitle "$BACKLIST" \ - --gauge "Starting to install files..." 18 70 0 -} - -# GRUB info with disk name used for grub-install. -grub_install() -{ - TARGET_DISK=`echo $TARGET_DEV | sed s/"[0-9]"/''/` - set_messages - $DIALOG --title " GRUB install " \ - --backtitle "$BACKLIST" \ - --clear --colors --yesno "$GRUB_INSTALL_MSG" 18 70 - retval=$? - case $retval in - 0) - ( - echo "XXX" && echo 50 - echo -e "\nRunning grub-install on : $TARGET_DISK" - echo "XXX" - grub-install --no-floppy \ - --root-directory=$TARGET_ROOT $TARGET_DISK 2>>$LOG - echo "XXX" && echo 100 - echo -e "\nFinished installation..." - echo "XXX" - sleep 2 - ) | - $DIALOG --title " GRUB install " \ - --backtitle "$BACKLIST" \ - --gauge "Installing GRUB..." 18 70 0 ;; - 1) - echo "grub_install: NO" >>$LOG ;; - 255) - echo -e "ESC pressed.\n" && exit 0 ;; - esac -} - -# Copy log file, umount target and eject cdrom. -umount_devices() -{ - ( - echo "XXX" && echo 25 - echo -e "\nCopying the log files ($LOG)" - echo "XXX" - cp -a $LOG $TARGET_ROOT/var/log - sleep 2 - echo "XXX" && echo 50 - echo -e "\nUnmounting the target ($TARGET_DEV)" - echo "XXX" - if mount | grep -q $TARGET_ROOT; then - umount $TARGET_ROOT 2>/dev/null - fi - echo "XXX" && echo 75 - echo -e "\nUnmounting and ejecting the cdrom..." - echo "XXX" - if mount | grep -q /media/cdrom; then - umount /media/cdrom - grep -q slitaz-loram-cdrom /etc/init.d/rcS || eject - fi - sleep 2 - echo "XXX" && echo 100 - echo -e "\n$TITLE..." - echo "XXX" - sleep 2 - ) | - $DIALOG --title " $TITLE " \ - --backtitle "$BACKLIST" \ - --gauge "$TITLE starting..." 18 70 0 -} - -# End of installation. -end_of_install() -{ - echo "end_of_install: `date`" >>$LOG - $DIALOG --title " Installation complete " \ - --backtitle "$BACKLIST" \ - --yes-label "Exit" \ - --no-label "Reboot" \ - --clear --colors --yesno "$END_OF_INSTALL_MSG" 18 70 - retval=$? - case $retval in - 0) - TITLE="Exiting" - umount_devices ;; - 1) - TITLE="Rebooting" - umount_devices - reboot || reboot -f ;; - 255) - echo -e "ESC pressed.\n" && exit 0 ;; -esac -} - -##################### -# Upgrade functions # -##################### - -# We need a partition to upgrade SliTaz. -ask_for_upgrade_dev() -{ - exec 3>&1 - UPGRADE_DEV=`$DIALOG --title " Target to upgrade " \ - --backtitle "$BACKLIST" --clear \ - --extra-label "List" --extra-button \ - --colors --inputbox "\n -The installer will upgrade the target by saving all configuration files and \ -the list of installed packages. Then, it will clean the partition and install the \ -version of SliTaz contained on the cdrom, restore the configuration files and \ -reinstall any packages which are not present on the cdrom. You will need an active \ -internet connection before upgrading.\n\n -\Z2Partition containing the system upgrade:\Zn" 18 70 2>&1 1>&3` - retval=$? - exec 3>&- - check_retval - # Display list and come back. - if [ "$retval" = "3" ]; then - fdisk_list - ask_for_upgrade_dev - fi - # Empty value. - if [ -z $UPGRADE_DEV ]; then - ask_for_upgrade_dev - fi - # Check if specified device exists in /proc/partitions. - DEV_NAME=${UPGRADE_DEV#/dev/} - if cat /proc/partitions | grep -q $DEV_NAME; then - echo "ask_for_target_dev: $TARGET_DEV" >>$LOG - else - ERROR_MSG="The partition \Z2$UPGRADE_DEV\Zn doesn't seem to exist." - error_message - ask_for_upgrade_dev - fi - echo "partition to upgrade: $UPGRADE_DEV" >>$LOG -} - -# Prepare the partition to upgrade, backup, install, restore configs -# and reinstall pkgs. -upgrade_process() -{ - ( - echo "XXX" && echo 5 - echo -e "\nPreparing the target partition..." - echo "XXX" - # Mount point can be already used. - if mount | grep -q $TARGET_ROOT; then - umount $TARGET_ROOT 2>$LOG - fi - mkdir -p $TARGET_ROOT && sleep 2 - # Mount target. - mount $UPGRADE_DEV $TARGET_ROOT >>$LOG 2>>$LOG - cd $TARGET_ROOT - TARGET_DEV=$UPGRADE_DEV - set_messages - - echo "XXX" && echo 10 - echo -e "\nSearch for /etc/slitaz-release" - echo "XXX" - if [ -f etc/slitaz-release ]; then - release=`cat etc/slitaz-release` - echo "XXX" && echo 15 - echo -e "\nSliTaz release: $release" - echo "XXX" - else - ERROR_MSG="The partition \Z2$UPGRADE_DEV\Zn doesn't appear to contain \ -a SliTaz system, the file: /etc/slitaz-release doesn't exist." - error_message - exit 0 - fi && sleep 2 - - echo "XXX" && echo 20 - echo -e "\nBackup /etc, /home and the packages list..." - echo "XXX" - # Backup target packages list. - ls -1 var/lib/tazpkg/installed > home/packages-selection.list - for dir in * - do - case "$dir" in - boot) - # Upgrade doesn't prompt for grub install, so backup and - # create a new grub menu.lst. - rm -rf $TARGET_ROOT/boot/vmlinuz-* - mv $TARGET_ROOT/boot/grub/menu.lst \ - $TARGET_ROOT/boot/grub/menu.lst.bak 2>/dev/null - grub_config ;; - home) - mv $TARGET_ROOT/home $TARGET_ROOT/home.bak - echo "keeping /home found on: $UPGRADE_DEV" >>$LOG ;; - etc) - tar czf $TARGET_ROOT/etc.tar.gz etc - mv $TARGET_ROOT/etc $TARGET_ROOT/etc.bak - echo "keeping /etc found on: $UPGRADE_DEV" >>$LOG ;; - var) - if [ -d $TARGET_ROOT/var/www ]; then - mv $TARGET_ROOT/var/www $TARGET_ROOT/www.bak - fi - rm -rf $TARGET_ROOT/var ;; - lost+found) - continue ;; - *) - echo "removing target: $dir" >>$LOG - rm -rf $TARGET_ROOT/$dir 2>>$LOG ;; - esac - done - if [ -d $TARGET_ROOT/mklost+found ]; then - mklost+found 2>>$LOG - fi - sleep 2 - - echo "XXX" && echo 25 - echo -e "\nInstalling the kernel ($KERNEL)" - echo "XXX" - install_kernel - - echo "XXX" && echo 30 - echo -e "\nCopying the bootloader syslinux/isolinux..." - echo "XXX" - copy_bootloaders - - echo "XXX" && echo 35 - echo -e "\nCopying the compressed system (rootfs.gz)..." - echo "XXX" - cp /media/cdrom/boot/rootfs.gz $TARGET_ROOT - sleep 2 - - echo "XXX" && echo 40 - echo -e "\nExtracting the root system..." - echo "XXX" - extract_rootfs - - # Restore backups. - echo "XXX" && echo 42 - echo -e "\nRestoring configuration files..." - echo "XXX" - rm -rf $TARGET_ROOT/home - mv $TARGET_ROOT/home.bak $TARGET_ROOT/home - rm -rf $TARGET_ROOT/etc - mv $TARGET_ROOT/etc.bak $TARGET_ROOT/etc - if [ -d $TARGET_ROOT/www.bak ]; then - rm -rf $TARGET_ROOT/var/www - mv $TARGET_ROOT/www.bak $TARGET_ROOT/var/www - fi - echo "backups restored: `date`" >> $LOG - - # /var/lib/slitaz-installer - mkdir $TARGET_ROOT/var/lib/slitaz-installer - mv $TARGET_ROOT/etc.tar.gz $TARGET_ROOT/var/lib/slitaz-installer - mv $TARGET_ROOT/home/packages-selection.list $TARGET_ROOT/var/lib/slitaz-installer - cd $TARGET_ROOT/var/lib/slitaz-installer - - # LiveCD packages list. - echo "XXX" && echo 46 - echo -e "\nCreating package lists..." - echo "XXX" - ls -1 $TARGET_ROOT/var/lib/tazpkg/installed > packages-cdrom.list || exit 1 - echo "packages-cdrom.list: done" >> $LOG - # Diff - diff packages-cdrom.list packages-selection.list | \ - grep ^+[a-z] | sed s/^+// > packages-selection.diff - echo "packages-selection.diff: done" >> $LOG - # Get mirror list. - tazpkg recharge >>$LOG 2>>$LOG - if [ ! -f /var/lib/tazpkg/packages.list ]; then - ERROR_MSG="The list of available packages on the mirror could not be \ -downloaded. No missing packages will be reinstalled now, but \ -you can do so later by looking at the following list: \n\n - -/var/lib/slitaz-installer/packages-selection.diff" - error_message - fi - sleep 2 - - # Check if the pkg is on the mirror. - echo "XXX" && echo 48 - echo -e "\nChecking the availability of packages..." - echo "XXX" - touch packages-to-install.list - packages=0 - diff=`cat packages-selection.diff | sort` - for pkg in $diff - do - if grep -q ^$pkg-[0-9] /var/lib/tazpkg/packages.list; then - packages=$(($packages+1)) - echo "$pkg" >> packages-to-install.list - fi - done - - # Calculate the percent for one package and install. - echo "XXX" && echo 50 - echo -e "\nInstalling any packages..." - echo "XXX" - sleep 2 - if [ "$packages" == "0" ]; then - echo "packages to install: 0" >> $LOG - else - onepkg=$((48/$packages)) - pct=50 - # Get-install all missing pkgs. - for pkg in `cat packages-to-install.list` - do - pct=$(($pct+$onepkg)) - echo "XXX" && echo $pct - echo -e "\nInstallation of: $pkg..." - echo "XXX" - # Log please. - echo "get-install: $pkg" >>$LOG - # Get install package and answer yes in case of dependencies. - pkgname=`grep ^$pkg /var/lib/tazpkg/packages.list` - tazpkg get $pkg >/dev/null 2>/dev/null - yes "" | tazpkg install $pkgname.tazpkg --root=$TARGET_ROOT >/dev/null 2>/dev/null - rm -f $pkgname.tazpkg - done - fi - echo "XXX" && echo 100 - echo -e "\nInstallation of packages complete..." - echo "XXX" - sleep 2 - ) | - $DIALOG --title " Processing system upgrade " \ - --backtitle "$BACKLIST" \ - --gauge "Target in preparation..." 18 70 0 -} - -# End of system upgrade. -end_of_upgrade() -{ - TARGET_DEV=$UPGRADE_DEV - set_messages - pkgscd=`cat $TARGET_ROOT/var/lib/slitaz-installer/packages-cdrom.list | wc -l` - pkginst=`cat $TARGET_ROOT/var/lib/slitaz-installer/packages-to-install.list | wc -l` - echo "end_of_upgrade: `date`" >>$LOG - $DIALOG --title " Upgrade completed " \ - --backtitle "$BACKLIST" \ - --yes-label "Exit" \ - --no-label "Reboot" \ - --clear --colors --yesno "\n -Upgrade finished. You can now restart (reboot) \ -from your SliTaz GNU/Linux system.\n\n -Packages on the cdrom : $pkgscd\n -Packages installed from the mirror : $pkginst\n" 18 70 - retval=$? - case $retval in - 0) - TITLE="Exiting" - umount_devices ;; - 1) - TITLE="Rebooting" - umount_devices - reboot || reboot -f ;; - 255) - echo -e "ESC pressed.\n" && exit 0 ;; -esac -} - -###################### -# Installer sequence # -###################### - -set_messages -check_root -start_installer - -case $ACTION in - upgrade) - BACKLIST="$BACKLIST (Upgrade)" - mount_cdrom - ask_for_upgrade_dev - upgrade_process - end_of_upgrade ;; - install|*) - mount_cdrom - ask_for_target_dev - ask_for_mkfs_target_dev - ask_for_home - if [ -n "$HOME_DEV" ]; then - ask_for_mkfs_home - fi - ask_for_hostname - ask_for_users_settings - summary - prepare_partitions - install_files - grub_install - end_of_install ;; -esac - -exit 0 diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/bin/tazlito --- a/core-xfce/rootfs/usr/bin/tazlito Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1825 +0,0 @@ -#!/bin/sh -# TazLito - SliTaz Live Tool. -# -# Tazlito is a tool to help generate and configure SliTaz LiveCD -# ISO images. You can create a custom distro in one command from a list of -# packages, extract an existing ISO image to hack it, create a new initramfs -# and/or a new ISO. Most commands must be run by root, except the stats -# and the configuration file manipulation. -# -# (C) 2007-2010 SliTaz - GNU General Public License. -# -# Authors : Christophe Lincoln -# Pascal Bellard -# -VERSION=2.0 - -# Tazlito configuration variables to be shorter -# and to use words rather than numbers. -COMMAND=$1 -LIST_NAME=$2 -TMP_DIR=/tmp/tazlito-$$-$RANDOM -TMP_MNT=/media/tazlito-$$-$RANDOM -TOP_DIR=`pwd` -INITRAMFS=rootfs.gz -LOCALSTATE=/var/lib/tazpkg -INSTALLED=$LOCALSTATE/installed -CACHE_DIR=/var/cache/tazpkg -MIRROR=$LOCALSTATE/mirror -DEFAULT_MIRROR="http://mirror.slitaz.org/packages/`cat /etc/slitaz-release`/" - -# Try to include config file, continue if command is gen-config or exit. -# The main config used by default is in /etc/tazlito. -if [ -f "/etc/tazlito/tazlito.conf" ] ; then - CONFIG_FILE="/etc/tazlito/tazlito.conf" -fi -# Specific distro config file can be put in a distro tree. -if [ -f "$TOP_DIR/tazlito.conf" ] ; then - CONFIG_FILE="$TOP_DIR/tazlito.conf" -fi -if [ ! "$CONFIG_FILE" = "" ] ; then - . $CONFIG_FILE -else - if [ "$COMMAND" = "gen-config" ] ; then - continue - else - echo "Unable to find any configuration file. Please read the docs" - echo "or run '`basename $0` gen-config' to get an empty config file." - exit 0 - fi -fi - -# While Tazpkg is not used the default mirror url file does not exist -# and user can't recharge the list of flavors. -if test $(id -u) = 0 ; then - if [ ! -f "$MIRROR" ]; then - echo "$DEFAULT_MIRROR" > $MIRROR - fi -fi - -# Set the rootfs and rootcd path with $DISTRO -# configuration variable. -ROOTFS=$DISTRO/rootfs -ROOTCD=$DISTRO/rootcd -FLAVORS_REPOSITORY=/home/slitaz/flavors - -##################### -# Tazlito functions # -##################### - -# Print the usage. -usage () -{ - echo -e "\nSliTaz Live Tool - Version: $VERSION\n -\033[1mUsage: \033[0m `basename $0` [command] [list|iso|flavor|compression] [dir|iso] -\033[1mCommands: \033[0m\n - usage Print this short usage. - stats View Tazlito and distro configuration statistics. - gen-config Generate a new configuration file for a distro. - configure Configure the main config file or a specific tazlito.conf. - gen-iso Generate a new ISO from a distro tree. - gen-initiso Generate a new initramfs and ISO from the distro tree. - list-flavors List all available package lists on the mirror. - gen-flavor Generate a new live-CD description. - gen-liveflavor Generate a live-CD description from current system. - show-flavor Show live-CD description. - get-flavor Get a flavor's list of packages. - upgrade-flavor Update package list to the latest available versions. - extract-flavor Extract a (*.flavor) flavor into $FLAVORS_REPOSITORY. - pack-flavor Pack (and update) a flavor from $FLAVORS_REPOSITORY. - check-list Check a distro-packages.list for updates. - extract-distro Extract an ISO to a directory and rebuild LiveCD tree. - gen-distro Generate a Live distro and ISO from a list of packages. - clean-distro Remove all files generated by gen-distro. - check-distro Help to check if distro is ready to release. - writeiso Use running system to generate a bootable ISO (with /home). - merge Merge multiple rootfs into one iso. - repack Recompress rootfs into iso with maximum ratio. - frugal-install Frugal install in /boot/frugal from a distro or ISO - emu-iso Emulate an ISO image with Qemu. - burn-iso Burn ISO image to a cdrom using Wodim.\n" -} - -# Status function. -status() -{ - local CHECK=$? - echo -en "\\033[70G[ " - if [ $CHECK = 0 ]; then - echo -en "\\033[1;33mOK" - else - echo -en "\\033[1;31mFailed" - fi - echo -e "\\033[0;39m ]" - return $CHECK -} - -yesorno() -{ - echo -n "$1" - case "$DEFAULT_ANSWER" in - Y|y) answer="y";; - N|n) answer="n";; - *) read answer;; - esac -} - -field() -{ - grep "^$1" "$2" | sed 's/.*: \([0-9KMG\.]*\).*/\1/' -} - -todomsg() -{ - echo -e "\\033[70G[ \\033[1;31mTODO\\033[0;39m ]" -} - -# Download a file from this mirror -download_from() -{ - local i - local mirrors - mirrors="$1" - shift - for i in $mirrors; do - case "$i" in - http://*|ftp://*) wget -c $i$@ && break;; - *) cp $i/$1 . && break;; - esac - done -} - -# Download a file trying all mirrors -download() -{ - local i - for i in $(cat $MIRROR $LOCALSTATE/undigest/*/mirror 2> /dev/null); do - download_from "$i" "$@" && break - done -} - -# Execute hooks provided by some packages -genisohooks() -{ - local here=`pwd` - for i in $(ls $ROOTFS/etc/tazlito/*.$1 2> /dev/null); do - cd $ROOTFS - . $i $ROOTCD - done - cd $here -} - -cleanup() -{ - if [ -d $TMP_MNT ]; then - umount $TMP_MNT - rmdir $TMP_MNT - rm -f /boot - fi -} - -# Echo the package name if the tazpkg is already installed -installed_package_name() -{ - local tazpkg - local package - local VERSION - local EXTRAVERSION - tazpkg=$1 - # Try to find package name and version to be able - # to repack it from installation - # A dash (-) can exist in name *and* in version - package=${tazpkg%-*} - i=$package - while true; do - VERSION="" - eval $(grep -s ^VERSION= $INSTALLED/$i/receipt) - EXTRAVERSION="" - eval $(grep -s ^EXTRAVERSION= $INSTALLED/$i/receipt) - if [ "$i-$VERSION$EXTRAVERSION" = "$tazpkg" ]; then - echo $i - break - fi - case "$i" in - *-*);; - *) break;; - esac - i=${i%-*} - done -} - -# Check if user is root. -check_root() -{ - if test $(id -u) != 0 ; then - echo -e "\nYou must be root to run `basename $0` with this option." - echo -e "Please type 'su' and root password to become super-user.\n" - exit 0 - fi -} - -# Check for the rootfs tree. -check_rootfs() -{ - if [ ! -d "$ROOTFS/etc" ] ; then - echo -e "\nUnable to find a distro rootfs...\n" - exit 0 - fi -} - -# Check for the boot dir into the root CD tree. -verify_rootcd() -{ - if [ ! -d "$ROOTCD/boot" ] ; then - echo -e "\nUnable to find the rootcd boot directory...\n" - exit 0 - fi -} - -create_iso() -{ - genisoimage -R -o $1 -b boot/isolinux/isolinux.bin \ - -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \ - -V "$VOLUM_NAME" -p "$PREPARED" -input-charset iso8859-1 \ - -boot-info-table $2 - if [ -x /usr/bin/isohybrid ]; then - echo -n "Creating hybrid ISO..." - /usr/bin/isohybrid $1 2> /dev/null - status - fi -} - -# Generate a new ISO image using isolinux. -gen_livecd_isolinux() -{ - # Some packages may want to alter iso - genisohooks iso - if [ ! -f "$ROOTCD/boot/isolinux/isolinux.bin" ]; then - echo -e "\nUnable to find isolinux binary.\n" - cleanup - exit 0 - fi - # Set date for boot msg. - if grep -q 'XXXXXXXX' $ROOTCD/boot/isolinux/isolinux.msg; then - DATE=`date +%Y%m%d` - echo -n "Setting build date to: $DATE..." - sed -i s/'XXXXXXXX'/"$DATE"/ $ROOTCD/boot/isolinux/isolinux.msg - status - fi - cd $ROOTCD - echo -n "Computing md5..." - find * -type f ! -name md5sum -exec md5sum {} \; > md5sum - status - cd $DISTRO - echo "" - echo -e "\033[1mGenerating ISO image\033[0m" - echo "================================================================================" - create_iso $ISO_NAME.iso $ROOTCD - echo -n "Creating the ISO md5sum..." - md5sum $ISO_NAME.iso > $ISO_NAME.md5 - status - echo "================================================================================" - # Some packages may want to alter final iso - genisohooks final -} - -lzma_history_bits() -{ - # - # This genertae ISO who boot with Qemu but give - # rootfs errors in frugal or liveUSB mode. - # - #local n - #local sz - #n=20 # 1Mb - #sz=$(du -sk $1 | cut -f1) - #while [ $sz -gt 1024 -a $n -lt 28 ]; do - #n=$(( $n + 1 )) - #sz=$(( $sz / 2 )) - #done - #echo $n - echo 24 -} - -lzma_switches() -{ - echo "-d$(lzma_history_bits $1) -mt$(grep ^processor < /proc/cpuinfo | wc -l)" -} - -# Pack rootfs -pack_rootfs() -{ - ( cd $1 ; find . -print | cpio -o -H newc ) | \ - if [ "$COMPRESSION" = "none" ]; then - echo "Generating uncompressed initramfs... " - cat > $2 - elif [ -x /usr/bin/lzma -a "$COMPRESSION" != "gzip" ]; then - echo -n "Generating lzma'ed initramfs... " - lzma e -si -so $(lzma_switches $1) > $2 - else - echo "Generating gziped initramfs... " - gzip -9 > $2 - fi - echo 1 > /tmp/rootfs -} - -# Compression functions for writeiso. -write_initramfs() -{ - if [ "$COMPRESSION" = "lzma" ]; then - echo -n "Creating rootfs.gz with lzma compression... " - cat /tmp/list | cpio -o -H newc | lzma e -si -so > /rootfs.gz - elif [ "$COMPRESSION" = "gzip" ]; then - echo "Creating rootfs.gz with gzip compression... " - cat /tmp/list | cpio -o -H newc | gzip -9 > /rootfs.gz - else - echo "Creating rootfs.gz without compression... " - cat /tmp/list | cpio -o -H newc > /rootfs.gz - fi - echo 1 > /tmp/rootfs -} - -# Generate a new initramfs from the root filesystem. -gen_initramfs() -{ - # Just in case CTRL+c - rm -f $DISTRO/gen - # Some packages may want to alter rootfs - genisohooks rootfs - cd $1 - echo "" - - # Link duplicate files - find . -type f -size +0c -exec stat -c '%s-%a-%u-%g %i %h %n' {} \; | \ - sort | ( save=0; old_attr=""; old_inode=""; old_link=""; old_file="" - while read attr inode link file; do - if [ "$attr" = "$old_attr" -a "$inode" != "$old_inode" ]; then - if cmp "$file" "$old_file" >/dev/null; then - rm -f "$file" - ln "$old_file" "$file" - inode="$old_inode" - [ "$link" = "1" ] && save="$(expr $save + ${attr%%-*})" - fi - fi - old_attr="$attr" ; old_inode="$inode" ; old_file="$file" - done - echo "$save bytes saved in duplicate files." - ) - - # Use lzma if installed. Display rootfs size in realtime. - rm -f /tmp/rootfs - pack_rootfs . $DISTRO/$(basename $1).gz & - sleep 2 - echo -en "\nFilesystem size:" - while [ ! -f /tmp/rootfs ] - do - sleep 1 - echo -en "\\033[18G`du -sh $DISTRO/rootfs.gz | awk '{print $1}'` " - done - echo -e "\n" - cd $DISTRO - mv $(basename $1).gz $ROOTCD/boot -} - -distro_sizes() -{ - echo "Build date : `date +%Y%m%d\ \at\ \%H:%M:%S`" - echo "Packages : `ls -1 $ROOTFS*$INSTALLED/*/receipt | wc -l`" - echo "Rootfs size : `du -csh $ROOTFS*/ | awk '{ s=$1 } END { print s }'`" - echo "Initramfs size : `du -csh $ROOTCD/boot/rootfs*.gz | awk '{ s=$1 } END { print s }'`" - echo "ISO image size : `du -sh $ISO_NAME.iso | awk '{ print $1 }'`" - echo "================================================================================" - echo "Image is ready: $ISO_NAME.iso" - echo "" -} - -# Print ISO and rootfs size. -distro_stats() -{ - echo "" - echo -e "\033[1mDistro statistics\033[0m ($DISTRO)" - echo "================================================================================" - distro_sizes -} - -# Create an empty configuration file. -empty_config_file() -{ - cat >> tazlito.conf << "EOF" -# tazlito.conf: Tazlito (SliTaz Live Tool) -# configuration file. -# - -# Name of the ISO image to generate. -ISO_NAME="" - -# ISO image volume name. -VOLUM_NAME="SliTaz" - -# Name of the preparer. -PREPARED="$USER" - -# Path to the packages repository and the packages.list. -PACKAGES_REPOSITORY="" - -# Path to the distro tree to gen-distro from a -# list of packages. -DISTRO="" - -# Path to the directory containing additional files -# to copy into the rootfs and rootcd of the LiveCD. -ADDFILES="$DISTRO/addfiles" - -# Default answer for binary question (Y or N) -DEFAULT_ANSWER="ASK" - -# Compression utility (lzma, gzip or none) -COMPRESSION="lzma" -EOF -} - -# extract rootfs.gz somewhere -extract_rootfs() -{ - (zcat $1 || unlzma -c $1 || cat $1) 2>/dev/null | \ - (cd $2; cpio -idm > /dev/null) -} - -# Remove duplicate files -mergefs() -{ - echo -n "Merge $(basename $1) ($(du -hs $1 | awk '{ print $1}')) into " - echo -n "$(basename $2) ($(du -hs $2 | awk '{ print $1}'))" - # merge symlinks files and devices - ( cd $1; find ) | while read file; do - if [ -L $1/$file ]; then - [ -L $2/$file ] && - [ "$(readlink $1/$file)" == "$(readlink $2/$file)" ] && - rm -f $2/$file - elif [ -f $1/$file ]; then - [ -f $2/$file ] && - cmp $1/$file $2/$file > /dev/null 2>&1 && rm -f $2/$file - [ -f $2/$file ] && - [ "$(basename $file)" == "volatile.cpio.gz" ] && - [ "$(dirname $(dirname $file))" == \ - "./var/lib/tazpkg/installed" ] && rm -f $2/$file - elif [ -b $1/$file ]; then - [ -b $2/$file ] && rm -f $2/$file - elif [ -c $1/$file ]; then - [ -c $2/$file ] && rm -f $2/$file - fi - done - - # cleanup directories - ( cd $1; find ) | while read file; do - if [ -d $1/$file ]; then - [ -d $2/$file ] && rmdir $2/$file 2> /dev/null - fi - done - true - status -} - -cleanup_merge() -{ - rm -rf $TMP_DIR - exit 1 -} - -human2cent() -{ -case "$1" in -*k) echo $1 | sed 's/\(.*\).\(.\)k/\1\2/';; -*M) echo $(( $(echo $1 | sed 's/\(.*\).\(.\)M/\1\2/') * 1024));; -*G) echo $(( $(echo $1 | sed 's/\(.*\).\(.\)G/\1\2/') * 1024 * 1024));; -esac -} - -cent2human() -{ -if [ $1 -lt 10000 ]; then - echo "$(($1 / 10)).$(($1 % 10))k" -elif [ $1 -lt 10000000 ]; then - echo "$(($1 / 10240)).$(( ($1/1024) % 10))M" -else - echo "$(($1 / 10485760)).$(( ($1/1048576) % 10))G" -fi -} - -get_size() -{ -cat /var/lib/tazpkg/packages.list $TMP_DIR/packages.list 2>/dev/null | awk "{ \ -if (/^$(echo $1 | sed 's/[$+.\]/\\&/g')$/) get=1; \ -if (/installed/ && get == 1) { print ; get++ } \ -} -END { if (get < 2) print \" 0.0k (0.0k installed)\" }" | \ -sed 's/ *\(.*\) .\(.*\) installed./\1 \2/' | while read packed unpacked; do - echo "$(human2cent $packed) $(human2cent $unpacked)" -done -} - -# Display package list with version, set packed_size and unpacked_size -get_pkglist() -{ -packed_size=0; unpacked_size=0 -grep -v ^# $FLAVORS_REPOSITORY/$1/packages.list > $TMP_DIR/flavor.pkg -while read pkg; do - set -- $(get_size $pkg) - packed_size=$(( $packed_size + $1 )) - unpacked_size=$(( $unpacked_size + $2 )) - for i in $(grep -hs ^$pkg /var/lib/tazpkg/packages.list \ - $TMP_DIR/packages.list); do - echo $i - break - done -done < $TMP_DIR/flavor.pkg -rm -f $TMP_DIR/flavor.pkg -} - -# Update isolinux config files for multiple rootfs -update_bootconfig() -{ - echo -n "Updating boot config files..." - grep -l 'include common' $1/*.cfg | \ - while read file ; do - awk -v n=$(echo $2 | awk '{ print NF/2 }') '{ -if (/label/) label=$0; -else if (/kernel/) kernel=$0; -else if (/append/) { - i=index($0,"rootfs.gz"); - append=substr($0,i+9); -} -else if (/include/) { - for (i = 1; i <= n; i++) { - print label i - print kernel; - initrd="initrd=/boot/rootfs" n ".gz" - for (j = n - 1; j >= i; j--) { - initrd=initrd ",/boot/rootfs" j ".gz"; - } - printf "\tappend %s%s\n",initrd,append; - print ""; - } - print; -} -else print; -}' < $file > $file.$$ - mv -f $file.$$ $file - done - cat >> $1/common.cfg < $1/noram.cfg < /dev/null; then - ln $TARGET/rootcd/boot/vmlinuz* $TARGET/rootcd/boot/bzImage - else - cp $TMP_DIR/boot/bzImage $TARGET/rootcd/boot - fi - status - echo -n "Copying isolinux files..." - cp -a $TMP_DIR/boot/isolinux $TARGET/rootcd/boot - for i in $(ls $TMP_DIR); do - [ "$i" = "boot" ] && continue - cp -a $TMP_DIR/$i $TARGET/rootcd - done - status - if [ -d $TMP_DIR/boot/syslinux ]; then - echo -n "Copying syslinux files..." - cp -a $TMP_DIR/boot/syslinux $TARGET/rootcd/boot - status - fi - if [ -d $TMP_DIR/boot/extlinux ]; then - echo -n "Copying extlinux files..." - cp -a $TMP_DIR/boot/extlinux $TARGET/rootcd/boot - status - fi - if [ -d $TMP_DIR/boot/grub ]; then - echo -n "Copying GRUB files..." - cp -a $TMP_DIR/boot/grub $TARGET/rootcd/boot - status - fi - - echo -n "Copying the rootfs..." - cp $TMP_DIR/boot/rootfs.?z $TARGET/rootcd/boot - status - # Extract initramfs. - cd $TARGET/rootfs - echo -n "Extracting the rootfs... " - extract_rootfs ../rootcd/boot/rootfs.gz $TARGET/rootfs - # unpack /usr - for i in etc/tazlito/*.extract; do - [ -f "$i" ] && . $i ../rootcd - done - # Umount and remove temp directory and cd to $TARGET to get stats. - umount $TMP_DIR && rm -rf $TMP_DIR - cd .. - echo "" - echo "================================================================================" - echo "Extracted : `basename $ISO_IMAGE` ($isosize)" - echo "Distro tree : `pwd`" - echo "Rootfs size : `du -sh rootfs`" - echo "Rootcd size : `du -sh rootcd`" - echo "================================================================================" - echo "" - ;; - list-flavors) - # Show available flavors. - if [ ! -s /etc/tazlito/flavors.list -o "$2" == "--recharge" ]; then - download flavors.list -O - > /etc/tazlito/flavors.list - fi - echo "" - echo -e "\033[1mList of flavors\033[0m" - echo "================================================================================" - cat /etc/tazlito/flavors.list - echo "" - ;; - show-flavor) - # Show flavor description. - FLAVOR=${2%.flavor} - if [ ! -f "$FLAVOR.flavor" ]; then - echo "File $FLAVOR.flavor not found." - exit 1 - fi - mkdir $TMP_DIR - zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i 2> /dev/null) - if [ "$3" = "--brief" ]; then - if [ "$4" != "--noheader" ]; then - echo "Name ISO Rootfs Description" - echo "================================================================================" - fi - printf "%-16.16s %6.6s %6.6s %s\n" "$FLAVOR" \ - "$(field ISO $TMP_DIR/$FLAVOR.desc)" \ - "$(field 'Rootfs size' $TMP_DIR/$FLAVOR.desc)" \ - "$(grep ^Description $TMP_DIR/$FLAVOR.desc | cut -d: -f2)" - else - echo "================================================================================" - cat $TMP_DIR/$FLAVOR.desc - fi - rm -Rf $TMP_DIR - ;; - gen-liveflavor) - # Generate a new flavor form the live system. - FLAVOR=${2%.flavor} - DESC="" - case "$FLAVOR" in - '') echo -n "Flavor name : " - read FLAVOR - [ -z "$FLAVOR" ] && exit 1;; - -?|-h*|--help) echo -e " - -SliTaz Live Tool - Version: $VERSION -\033[1mUsage: \033[0m `basename $0` gen-liveflavor flavor-name [flavor-patch-file] -\033[1mflavor-patch-file format: \033[0m -code data -+ package to add -- package to remove -! non-free package to add -? display message -@ flavor description - -\033[1mExample: \033[0m -@ Developer tools for slitaz maintainers -+ slitaz-toolchain -+ mercurial -" - exit 1;; - esac - mv /etc/tazlito/distro-packages.list \ - /etc/tazlito/distro-packages.list.$$ 2> /dev/null - rm -f distro-packages.list non-free.list 2> /dev/null - tazpkg recharge - [ -n "$3" ] && while read action pkg; do - case "$action" in - +) yes | tazpkg get-install $pkg;; - -) yes | tazpkg remove $pkg;; - !) echo $pkg >> non-free.list;; - @) DESC="$pkg";; - \?) echo -en "$pkg"; read action;; - esac - done < $3 - yes '' | tazlito gen-distro - echo "$DESC" | tazlito gen-flavor "$FLAVOR" - mv /etc/tazlito/distro-packages.list.$$ \ - /etc/tazlito/distro-packages.list 2> /dev/null - ;; - gen-flavor) - # Generate a new flavor from the last iso image generated. - FLAVOR=${2%.flavor} - echo "" - echo -e "\033[1mFlavor generation\033[0m" - echo "================================================================================" - if [ -z "$FLAVOR" ]; then - echo -n "Flavor name : " - read FLAVOR - [ -z "$FLAVOR" ] && exit 1 - fi - check_rootfs - FILES="$FLAVOR.pkglist" - echo -n "Creating file $FLAVOR.flavor..." - for i in rootcd rootfs; do - if [ -d "$ADDFILES/$i" ] ; then - FILES="$FILES\n$FLAVOR.$i" - ( cd "$ADDFILES/$i"; find . | \ - cpio -o -H newc 2> /dev/null | gzip -9 ) > $FLAVOR.$i - fi - done - status - answer=`grep -s ^Description $FLAVOR.desc` - answer=${answer#Description : } - if [ -z "$answer" ]; then - echo -n "Description : " - read answer - fi - echo -n "Compressing flavor $FLAVOR..." - echo "Flavor : $FLAVOR" > $FLAVOR.desc - echo "Description : $answer" >> $FLAVOR.desc - ( cd $DISTRO; distro_sizes) >> $FLAVOR.desc - \rm -f $FLAVOR.pkglist $FLAVOR.nonfree 2> /dev/null - for i in $(ls $ROOTFS$INSTALLED); do - eval $(grep ^VERSION= $ROOTFS$INSTALLED/$i/receipt) - EXTRAVERSION="" - eval $(grep ^EXTRAVERSION= $ROOTFS$INSTALLED/$i/receipt) - eval $(grep ^CATEGORY= $ROOTFS$INSTALLED/$i/receipt) - if [ "$CATEGORY" = "non-free" -a "${i%%-*}" != "get" ] - then - echo "$i" >> $FLAVOR.nonfree - else - echo "$i-$VERSION$EXTRAVERSION" >> $FLAVOR.pkglist - fi - done - [ -s $FLAVOR.nonfree ] && $FILES="$FILES\n$FLAVOR.nonfree" - for i in $LOCALSTATE/undigest/*/mirror ; do - [ -s $i ] && cat $i >> $FLAVOR.mirrors - done - [ -s $FLAVOR.mirrors ] && $FILES="$FILES\n$FLAVOR.mirrors" - echo -e "$FLAVOR.desc\n$FILES" | cpio -o -H newc 2>/dev/null | \ - gzip -9 > $FLAVOR.flavor - rm `echo -e $FILES` - status - echo "================================================================================" - echo "Flavor size : `du -sh $FLAVOR.flavor`" - echo "" - ;; - upgrade-flavor) - # Update package list to the lastest versions available. - FLAVOR=${2%.flavor} - if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then - mkdir $TMP_DIR - zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i >/dev/null ) - echo -n "Updating $FLAVOR package list..." - [ -s /var/lib/tazpkg/packages.list ] || tazpkg recharge - packed_size=0; unpacked_size=0 - while read org; do - i=0 - pkg=$org - while ! grep -q ^$pkg$ /var/lib/tazpkg/packages.txt; do - pkg=${pkg%-*} - i=$(($i + 1)) - [ $i -gt 5 ] && break; - done - set -- $(get_size $pkg) - packed_size=$(( $packed_size + $1 )) - unpacked_size=$(( $unpacked_size + $2 )) - for i in $(grep ^$pkg /var/lib/tazpkg/packages.list); do - echo $i - break - done - done < $TMP_DIR/$FLAVOR.pkglist \ - > $TMP_DIR/$FLAVOR.pkglist.$$ - mv -f $TMP_DIR/$FLAVOR.pkglist.$$ $TMP_DIR/$FLAVOR.pkglist - if [ -s $TMP_DIR/$FLAVOR.rootfs ]; then - packed_size=$(($packed_size \ - + $(cat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 )) - unpacked_size=$(($unpacked_size \ - + $(zcat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 )) - fi - # Estimate lzma - packed_size=$(($packed_size * 2 / 3)) - iso_size=$(( $packed_size + 26000 )) - if [ -s $TMP_DIR/$FLAVOR.rootcd ]; then - iso_size=$(($iso_size \ - + $(zcat $TMP_DIR/$FLAVOR.rootcd | wc -c ) / 100 )) - fi - sed -i -e '/Image is ready/d' \ - -e "s/Rootfs size\( *:\) \(.*\)/Rootfs size\1 $(cent2human $unpacked_size) (estimated)/" \ - -e "s/Initramfs size\( *:\) \(.*\)/Initramfs size\1 $(cent2human $packed_size) (estimated)/" \ - -e "s/ISO image size\( *:\) \(.*\)/ISO image size\1 $(cent2human $iso_size) (estimated)/" \ - -e "s/date\( *:\) \(.*\)/date\1 $(date +%Y%m%d\ \at\ \%H:%M:%S)/" \ - $TMP_DIR/$FLAVOR.desc - ( cd $TMP_DIR ; ls | cpio -o -H newc ) | gzip -9 > \ - $FLAVOR.flavor - status - rm -Rf $TMP_DIR - fi - ;; - extract-flavor) - # Extract a flavor into $FLAVORS_REPOSITORY. - FLAVOR=${2%.flavor} - if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then - mkdir $TMP_DIR - zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i >/dev/null ) - echo -n "Extracting $FLAVOR..." - rm -rf $FLAVORS_REPOSITORY/$FLAVOR 2> /dev/null - mkdir -p $FLAVORS_REPOSITORY/$FLAVOR - echo "FLAVOR=\"$FLAVOR\"" > $FLAVORS_REPOSITORY/$FLAVOR/receipt - grep ^Description $TMP_DIR/$FLAVOR.desc | \ - sed 's/.*: \(.*\)$/SHORT_DESC="\1"/' >> \ - $FLAVORS_REPOSITORY/$FLAVOR/receipt - grep -q '^Rootfs list' $TMP_DIR/$FLAVOR.desc && \ - grep '^Rootfs list' $TMP_DIR/$FLAVOR.desc | \ - sed 's/.*: \(.*\)$/ROOTFS_SELECTION="\1"/' >> \ - $FLAVORS_REPOSITORY/$FLAVOR/receipt - grep '^Rootfs size' $TMP_DIR/$FLAVOR.desc | \ - sed 's/.*: \(.*\)$/ROOTFS_SIZE="\1"/' >> \ - $FLAVORS_REPOSITORY/$FLAVOR/receipt - grep ^Initramfs $TMP_DIR/$FLAVOR.desc | \ - sed 's/.*: \(.*\)$/INITRAMFS_SIZE="\1"/' >> \ - $FLAVORS_REPOSITORY/$FLAVOR/receipt - grep ^ISO $TMP_DIR/$FLAVOR.desc | \ - sed 's/.*: \(.*\)$/ISO_SIZE="\1"/' >> \ - $FLAVORS_REPOSITORY/$FLAVOR/receipt - for i in rootcd rootfs; do - [ -f $TMP_DIR/$FLAVOR.$i ] || continue - mkdir $FLAVORS_REPOSITORY/$FLAVOR/$i - zcat $TMP_DIR/$FLAVOR.$i | \ - (cd $FLAVORS_REPOSITORY/$FLAVOR/$i; \ - cpio -idm > /dev/null) - done - [ -s $TMP_DIR/$FLAVOR.mirrors ] && - cp $TMP_DIR/$FLAVOR.mirrors \ - $FLAVORS_REPOSITORY/$FLAVOR/mirrors - [ -s /var/lib/tazpkg/packages.list ] || tazpkg recharge - while read org; do - i=0 - pkg=$org - while ! grep -q ^$pkg$ /var/lib/tazpkg/packages.txt; do - pkg=${pkg%-*} - i=$(($i + 1)) - [ $i -gt 5 ] && break; - done - echo $pkg - done < $TMP_DIR/$FLAVOR.pkglist \ - > $FLAVORS_REPOSITORY/$FLAVOR/packages.list - status - rm -Rf $TMP_DIR - fi - ;; - pack-flavor) - # Create a flavor from $FLAVORS_REPOSITORY. - FLAVOR=${2%.flavor} - if [ -s $FLAVORS_REPOSITORY/$FLAVOR/receipt ]; then - mkdir $TMP_DIR - echo -n "Creating flavor $FLAVOR..." - [ -s /var/lib/tazpkg/packages.list ] || tazpkg recharge - if [ -s $FLAVORS_REPOSITORY/$FLAVOR/mirrors ]; then - cp $FLAVORS_REPOSITORY/$FLAVOR/mirrors \ - $TMP_DIR/$FLAVOR.mirrors - for i in $(cat $TMP_DIR/$FLAVOR.mirrors); do - wget -O - $i/packages.list >> $TMP_DIR/packages.list - done - fi - [ -s $FLAVORS_REPOSITORY/$FLAVOR/packages.list ] && - get_pkglist $FLAVOR > $TMP_DIR/$FLAVOR.pkglist - if grep -q ^ROOTFS_SELECTION \ - $FLAVORS_REPOSITORY/$FLAVOR/receipt; then - . $FLAVORS_REPOSITORY/$FLAVOR/receipt - set -- $ROOTFS_SELECTION - [ -n "$FRUGAL_RAM" ] || FRUGAL_RAM=$1 - [ -f $FLAVORS_REPOSITORY/$2/packages.list ] || - tazlito extract-flavor $2 - get_pkglist $2 > $TMP_DIR/$FLAVOR.pkglist - fi - for i in rootcd rootfs; do - [ -d $FLAVORS_REPOSITORY/$FLAVOR/$i ] || \ - continue - ( cd $FLAVORS_REPOSITORY/$FLAVOR/$i ; find . | \ - cpio -o -H newc 2> /dev/null ) | \ - gzip -9 >$TMP_DIR/$FLAVOR.$i - done - if [ -s $TMP_DIR/$FLAVOR.rootfs ]; then - packed_size=$(($packed_size \ - + $(cat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 )) - unpacked_size=$(($unpacked_size \ - + $(zcat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 )) - fi - # Estimate lzma - packed_size=$(($packed_size * 2 / 3)) - iso_size=$(( $packed_size + 26000 )) - if [ -s $TMP_DIR/$FLAVOR.rootcd ]; then - iso_size=$(($iso_size \ - + $(zcat $TMP_DIR/$FLAVOR.rootcd | wc -c ) / 100 )) - fi - VERSION="" - MAINTAINER="" - ROOTFS_SELECTION="" - ROOTFS_SIZE="$(cent2human $unpacked_size) (estimated)" - INITRAMFS_SIZE="$(cent2human $packed_size) (estimated)" - ISO_SIZE="$(cent2human $iso_size) (estimated)" - . $FLAVORS_REPOSITORY/$FLAVOR/receipt - cat > $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc < /dev/null) | \ - gzip -9 > $FLAVOR.flavor - status - rm -Rf $TMP_DIR - else - echo "No $FLAVOR flavor in $FLAVORS_REPOSITORY." - fi - ;; - get-flavor) - # Get a flavor's files and prepare for gen-distro. - FLAVOR=${2%.flavor} - echo "" - if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then - echo -n "Cleaning $DISTRO..." - rm -R $DISTRO 2> /dev/null - mkdir -p $DISTRO - status - mkdir $TMP_DIR - echo -n "Extracting flavor $FLAVOR.flavor... " - zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i 2>/dev/null ) - echo -n "Creating distro-packages.list..." - mv $TMP_DIR/$FLAVOR.nonfree non-free.list 2> /dev/null - mv $TMP_DIR/$FLAVOR.pkglist distro-packages.list - status - for i in rootcd rootfs; do - if [ -f $TMP_DIR/$FLAVOR.$i ]; then - echo -n "Adding $i... " - mkdir -p "$ADDFILES/$i" - zcat $TMP_DIR/$FLAVOR.$i | \ - ( cd "$ADDFILES/$i"; cpio -id 2> /dev/null) - fi - done - if [ -s $TMP_DIR/$FLAVOR.mirrors ]; then - n="" - while read line; do - mkdir -p $LOCALSTATE/undigest/$FLAVOR$n - echo "$line" > $LOCALSTATE/undigest/$FLAVOR$n/mirror - n=$(( $n + 1 )) - done < $TMP_DIR/$FLAVOR.mirrors - tazpkg recharge - fi - rm -f /etc/tazlito/rootfs.list - grep -q '^Rootfs list' $TMP_DIR/$FLAVOR.desc && - grep '^Rootfs list' $TMP_DIR/$FLAVOR.desc | \ - sed 's/.*: \(.*\)$/\1/' > /etc/tazlito/rootfs.list - echo -n "Updating tazlito.conf..." - [ -f tazlito.conf ] || cp /etc/tazlito/tazlito.conf . - cat tazlito.conf | grep -v "^#VOLUM_NAME" | \ - sed "s/^VOLUM_NA/VOLUM_NAME=\"SliTaz $FLAVOR\"\\n#VOLUM_NA/" \ - > tazlito.conf.$$ && mv tazlito.conf.$$ tazlito.conf - sed -i "s/ISO_NAME=.*/ISO_NAME=\"slitaz-$FLAVOR\"/" tazlito.conf - status - rm -Rf $TMP_DIR - fi - echo "" - ;; - check-list) - # Use current packages list in $PWD by default. - DISTRO_PKGS_LIST=distro-packages.list - [ -d "$2" ] && DISTRO_PKGS_LIST=$2/distro-packages.list - [ -f "$2" ] && DISTRO_PKGS_LIST=$2 - [ ! -f $DISTRO_PKGS_LIST ] && echo "No packages list found." && exit 0 - echo "" - echo -e "\033[1mLiveCD packages list check\033[0m" - echo "================================================================================" - for pkg in `cat $DISTRO_PKGS_LIST` - do - if ! grep -q "$pkg" /var/lib/tazpkg/packages.list; then - echo "Update: $pkg" - up=$(($up + 1)) - fi - done - [ -z $up ] && echo -e "List is up-to-date\n" && exit 0 - echo "================================================================================" - echo -e "Updates: $up\n" ;; - gen-distro) - # Generate a live distro tree with a set of packages. - # - check_root - - # Check if a package list was specified on cmdline. - LIST_NAME="distro-packages.list" - CDROM="" - while [ -n "$2" ]; do - case "$2" in - --iso=*) - CDROM="-o loop ${2#--iso=}" - ;; - --cdrom) - CDROM="/dev/cdrom" - ;; - --force) - DELETE_ROOTFS="true" - ;; - *) if [ ! -f "$2" ] ; then - echo -e "\nUnable to find the specified packages list." - echo -e "List name : $2\n" - exit 1 - fi - LIST_NAME=$2 - ;; - esac - shift - done - - if [ -d $ROOTFS ] ; then - # Delete $ROOTFS if --force is set on command line - if [ ! -z $DELETE_ROOTFS ]; then - rm -rf $ROOTFS - unset $DELETE_ROOTFS - else - echo -e "\nA rootfs exists in : $DISTRO" - echo -e "Please clean the distro tree or change directory path.\n" - exit 0 - fi - fi - if [ ! -f "$LIST_NAME" -a -d $INSTALLED ] ; then - # Build list with installed packages - for i in $(ls $INSTALLED); do - eval $(grep ^VERSION= $INSTALLED/$i/receipt) - EXTRAVERSION="" - eval $(grep ^EXTRAVERSION= $INSTALLED/$i/receipt) - echo "$i-$VERSION$EXTRAVERSION" >> $LIST_NAME - done - fi - # Exit if no list name. - if [ ! -f "$LIST_NAME" ]; then - echo -e "\nNo packages list found or specified. Please read the docs.\n" - exit 0 - fi - # Start generation. - echo "" - echo -e "\033[1mTazlito generating a distro\033[0m" - echo "================================================================================" - # Misc checks - [ -n "$PACKAGES_REPOSITORY" ] || PACKAGES_REPOSITORY="." - [ -d $PACKAGES_REPOSITORY ] || mkdir -p $PACKAGES_REPOSITORY - # Get the list of packages using cat for a file list. - LIST=`cat $LIST_NAME` - # Verify if all packages in list are present in $PACKAGES_REPOSITORY. - REPACK="" - DOWNLOAD="" - for pkg in $LIST - do - [ "$pkg" = "" ] && continue - pkg=${pkg%.tazpkg} - [ -f $PACKAGES_REPOSITORY/$pkg.tazpkg ] && continue - PACKAGE=$(installed_package_name $pkg) - [ -n "$PACKAGE" -a "$REPACK" = "y" ] && continue - [ -z "$PACKAGE" -a -n "$DOWNLOAD" ] && continue - echo -e "\nUnable to find $pkg in the repository." - echo -e "Path : $PACKAGES_REPOSITORY\n" - if [ -n "$PACKAGE" -a -z "$REPACK" ]; then - yesorno "Repack packages from rootfs (y/N) ? " - REPACK="$answer" - [ "$answer" = "y" ] || REPACK="n" - [ "$DOWNLOAD" = "y" ] && break - fi - if [ -f $MIRROR -a -z "$DOWNLOAD" ]; then - yesorno "Download packages from mirror (Y/n) ? " - DOWNLOAD="$answer" - if [ "$answer" = "n" ]; then - [ -z "$PACKAGE" ] && exit 1 - else - DOWNLOAD="y" - [ -n "$REPACK" ] && break - fi - fi - [ "$REPACK" = "n" -a "$DOWNLOAD" = "n" ] && exit 1 - done - - # Mount cdrom to be able to repack boot-loader packages - if [ ! -e /boot -a -n "$CDROM" ]; then - mkdir $TMP_MNT - if mount -r $CDROM $TMP_MNT 2> /dev/null; then - ln -s $TMP_MNT/boot / - if [ ! -d "$ADDFILES/rootcd" ] ; then - mkdir -p $ADDFILES/rootcd - for i in $(ls $TMP_MNT); do - [ "$i" = "boot" ] && continue - cp -a $TMP_MNT/$i $ADDFILES/rootcd - done - fi - else - rmdir $TMP_MNT - fi - fi - - # Root fs stuff. - echo "Preparing the rootfs directory..." - mkdir -p $ROOTFS - sleep 2 - for pkg in $LIST - do - [ "$pkg" = "" ] && continue - # First copy and extract the package in tmp dir. - pkg=${pkg%.tazpkg} - PACKAGE=$(installed_package_name $pkg) - mkdir -p $TMP_DIR - if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then - # Look for package in cache - if [ -f $CACHE_DIR/$pkg.tazpkg ]; then - ln -s $CACHE_DIR/$pkg.tazpkg $PACKAGES_REPOSITORY - # Look for package in running distribution - elif [ -n "$PACKAGE" -a "$REPACK" = "y" ]; then - tazpkg repack $PACKAGE && \ - mv $pkg.tazpkg $PACKAGES_REPOSITORY - fi - fi - if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then - # Get package from mirror - [ "$DOWNLOAD" = "y" ] && \ - download $pkg.tazpkg && \ - mv $pkg.tazpkg $PACKAGES_REPOSITORY - fi - if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then - echo "Missing package $pkg." - cleanup - exit 1 - fi - done - if [ -f non-free.list ]; then - echo "Preparing non-free packages..." - cp non-free.list $ROOTFS/etc/tazlito/non-free.list - for pkg in $(cat non-free.list); do - if [ ! -d $INSTALLED/$pkg ]; then - if [ ! -d $INSTALLED/get-$pkg ]; then - tazpkg get-install get-$pkg - fi - get-$pkg - fi - tazpkg repack $pkg - pkg=$(ls $pkg*.tazpkg) - grep -q "^$pkg$" $LIST_NAME || \ - echo $pkg >>$LIST_NAME - mv $pkg $PACKAGES_REPOSITORY - done - fi - echo "" - cp $LIST_NAME $DISTRO/distro-packages.list - sed 's/\(.*\)/\1.tazpkg/' < $DISTRO/distro-packages.list > $DISTRO/list-packages - cd $PACKAGES_REPOSITORY - yes y | tazpkg install-list \ - $DISTRO/list-packages --root=$ROOTFS - cd $DISTRO - cp distro-packages.list $ROOTFS/etc/tazlito - # Copy all files from $ADDFILES/rootfs to the rootfs. - if [ -d "$ADDFILES/rootfs" ] ; then - echo -n "Copying addfiles content to the rootfs... " - cp -a $ADDFILES/rootfs/* $ROOTFS - status - fi - echo "Root file system is generated..." - # Root CD part. - echo -n "Preparing the rootcd directory..." - mkdir -p $ROOTCD - status - # Move the boot dir with the Linux kernel from rootfs. - # The boot dir goes directly on the CD. - if [ -d "$ROOTFS/boot" ] ; then - echo -n "Moving the boot directory..." - mv $ROOTFS/boot $ROOTCD - cd $ROOTCD/boot - ln vmlinuz-* bzImage - status - fi - cd $DISTRO - # Copy all files from $ADDFILES/rootcd to the rootcd. - if [ -d "$ADDFILES/rootcd" ] ; then - echo -n "Copying addfiles content to the rootcd... " - cp -a $ADDFILES/rootcd/* $ROOTCD - status - fi - # Execute the distro script (used to perform tasks in the rootfs - # before compression. Give rootfs path in arg - [ -z $DISTRO_SCRIPT ] && DISTRO_SCRIPT=$TOP_DIR/distro.sh - if [ -x $DISTRO_SCRIPT ]; then - echo "Executing distro script..." - sh $DISTRO_SCRIPT $DISTRO - fi - if [ -s /etc/tazlito/rootfs.list ]; then - [ -f $ROOTCD/boot/isolinux/ifmem.c32 ] || - cp /boot/isolinux/ifmem.c32 $ROOTCD/boot/isolinux - n=0 - last=$ROOTFS - while read flavor; do - n=$(($n+1)) - echo "Building $flavor rootfs..." - download $flavor.flavor - zcat $flavor.flavor | cpio -i $flavor.pkglist - sed 's/.*/&.tazpkg/' < $flavor.pkglist \ - > $DISTRO/list-packages0$n - mkdir ${ROOTFS}0$n - cd $PACKAGES_REPOSITORY - yes y | tazpkg install-list \ - $DISTRO/list-packages0$n --root=${ROOTFS}0$n - rm -rf ${ROOTFS}0$n/boot - status - cd $DISTRO - mv $flavor.pkglist ${ROOTFS}0$n/etc/tazlito/distro-packages.list - rm -f $flavor.flavor install-list - mergefs ${ROOTFS}0$n $last - last=${ROOTFS}0$n - done </tmp/list - - for dir in /proc /sys /tmp /mnt /media /media/cdrom /media/flash /media/usbdisk - do - echo $dir >>/tmp/list - done - - # Generate initramfs with specified compression and display rootf - # size in realtime. - rm -f /tmp/rootfs - write_initramfs & - sleep 2 - echo -en "\nFilesystem size:" - while [ ! -f /tmp/rootfs ] - do - sleep 1 - echo -en "\\033[18G`du -sh /rootfs.gz | awk '{print $1}'` " - done - echo -e "\n" - - # Move freshly generated rootfs to the cdrom. - mkdir -p $ROOTCD/boot - mv -f /rootfs.gz $ROOTCD/boot - - # Now we need the kernel and isolinux files. - if mount /dev/cdrom /media/cdrom 2>/dev/null; then - cp /media/cdrom/boot/bzImage $ROOTCD/boot - cp -a /media/cdrom/boot/isolinux $ROOTCD/boot - umount /media/cdrom - else - echo -e " -Unable to mount the cdrom to copy the Kernel and needed files. When SliTaz -is running in RAM the kernel and bootloader files are keeped on the cdrom. -Please insert a LiveCD or unmount curent cdrom to let Tazlito handle the media.\n" - echo -en "----\nENTER to continue..."; read i - exit 1 - fi - - # Generate the iso image. - cd $DISTRO - echo "Generating ISO image..." - genisoimage -R -o $ISO_NAME.iso -b boot/isolinux/isolinux.bin \ - -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \ - -V "SliTaz" -input-charset iso8859-1 -boot-info-table $ROOTCD - if [ -x /usr/bin/isohybrid ]; then - echo -n "Creating hybrid ISO..." - /usr/bin/isohybrid $ISO_NAME.iso 2> /dev/null - status - fi - echo -n "Creating the ISO md5sum..." - md5sum $ISO_NAME.iso > $ISO_NAME.md5 - status - - echo "===============================================================================" - echo "ISO image: `du -sh /home/slitaz/distro/$ISO_NAME.iso`" - echo "" - echo -n "Exit or burn ISO to cdrom (Exit|burn)? "; read anser - case $anser in - burn) - eject - echo -n "Please insert a blank cdrom and press ENTER..." - read i && sleep 2 - tazlito burn-iso /home/slitaz/distro/$ISO_NAME.iso - echo -en "----\nENTER to continue..."; read i ;; - *) - exit 0 ;; - esac ;; - burn-iso) - # Guess cdrom device, ask user and burn the ISO. - # - check_root - DRIVE_NAME=`cat /proc/sys/dev/cdrom/info | grep "drive name" | cut -f 3` - DRIVE_SPEED=`cat /proc/sys/dev/cdrom/info | grep "drive speed" | cut -f 3` - # We can specify an alternative ISO from the cmdline. - if [ -n "$2" ] ; then - iso=$2 - else - iso=$DISTRO/$ISO_NAME.iso - fi - if [ ! -f "$iso" ]; then - echo -e "\nUnable to find ISO : $iso\n" - exit 0 - fi - echo "" - echo -e "\033[1mTazlito burn ISO\033[0m " - echo "================================================================================" - echo "Cdrom device : /dev/$DRIVE_NAME" - echo "Drive speed : $DRIVE_SPEED" - echo "ISO image : $iso" - echo "================================================================================" - echo "" - yesorno "Burn ISO image (y/N) ? " - if [ "$answer" == "y" ]; then - echo "" - echo "Starting Wodim to burn the iso..." && sleep 2 - echo "================================================================================" - wodim speed=$DRIVE_SPEED dev=/dev/$DRIVE_NAME $iso - echo "================================================================================" - echo "ISO image is burned to cdrom." - else - echo -e "\nExiting. No ISO burned." - fi - echo "" - ;; - merge) - # Merge multiple rootfs into one iso. - # - if [ -z "$2" ]; then - cat << EOT -Usage: tazlito merge size1 iso size2 rootfs2 [sizeN rootfsN]... - -Merge multiple rootfs into one iso. Rootfs are like russian dolls -i.e: rootfsN is a subset of rootfsN-1 -rootfs1 is found in iso, sizeN is the RAM size need to launch rootfsN. -The boot loader will select the rootfs according to the RAM size detected. - -Example: -$ tazlito merge 160M slitaz-core.iso 96M rootfs-justx.gz 32M rootfs-base.gz - -Will start slitaz-core with 160M+ RAM, slitaz-justX with 96M-160M RAM, -slitaz-base with 32M-96M RAM and display an error message if RAM < 32M. -EOT - exit 2 - fi - - shift # skip merge - append="$1 slitaz1" - shift # skip size1 - mkdir -p $TMP_DIR/mnt $TMP_DIR/rootfs1 - - ISO=$1.merged - # Extract filesystems - echo -n "Mounting $1" - mount -o loop,ro $1 $TMP_DIR/mnt 2> /dev/null - status || cleanup_merge - cp -a $TMP_DIR/mnt $TMP_DIR/iso - rm -f $TMP_DIR/iso/boot/bzImage - ln $TMP_DIR/iso/boot/vmlinuz* $TMP_DIR/iso/boot/bzImage - umount -d $TMP_DIR/mnt - if [ -f $TMP_DIR/iso/boot/rootfs1.gz ]; then - echo "$1 is already a merged iso. Aborting." - cleanup_merge - fi - if [ ! -f $TMP_DIR/iso/boot/isolinux/ifmem.c32 ]; then - if [ ! -f /boot/isolinux/ifmem.c32 ]; then - cat < /dev/null - status || cleanup_merge - cp -a $TMP_DIR/mnt $TMP_DIR/iso - umount -d $TMP_DIR/mnt - - for i in $TMP_DIR/iso/boot/rootfs* ; do - echo -n "Repacking $(basename $i)" - (zcat $i || unlzma -c $i || cat $i) \ - 2>/dev/null > $TMP_DIR/rootfs - lzma e $TMP_DIR/rootfs $i \ - $(lzma_switches $TMP_DIR/rootfs) - status - done - - echo "Generating $ISO" - create_iso $ISO $TMP_DIR/iso - rm -rf $TMP_DIR ;; - - frugal-install|-fi) - ISO_IMAGE="$2" - echo "" - mkdir -p /boot/frugal - if [ -f "$ISO_IMAGE" ]; then - echo -n "Using ISO image: $ISO_IMAGE" - mkdir -p /tmp/iso && mount -o loop $ISO_IMAGE /tmp/iso - status - echo -n "Installing the Kernel and rootfs..." - cp -a /tmp/iso/boot/bzImage /boot/frugal - cp -a /tmp/iso/boot/rootfs.gz /boot/frugal - umount /tmp/iso - status - else - echo -n "Using distro: $DISTRO" - cd $DISTRO && status - echo -n "Installing the Kernel and rootfs..." - cp -a $DISTRO/rootcd/boot/bzImage /boot/frugal - cp -a $DISTRO/rootcd/boot/rootfs.gz /boot/frugal - status - fi - # Grub entry - if ! grep -q "^kernel /boot/frugal/bzImage" /boot/grub/menu.lst; then - echo -n "Configuring GRUB menu list..." - cat >> /boot/grub/menu.lst << EOT -title SliTaz GNU/Linux (frugal) -root (hd0,0) -kernel /boot/frugal/bzImage root=/dev/null -initrd /boot/frugal/rootfs.gz -EOT - else - echo -n "GRUB menu list is up-to-date..." - fi - status - echo "" ;; - - emu-iso) - # Emulate an ISO image with Qemu. - if [ -n "$2" ] ; then - iso=$2 - else - iso=$DISTRO/$ISO_NAME.iso - fi - if [ ! -f "$iso" ]; then - echo -e "\nUnable to find ISO : $iso\n" - exit 0 - fi - if [ ! -x "/usr/bin/qemu" ]; then - echo -e "\nUnable to find Qemu binary. Please install: qemu\n" - exit 0 - fi - echo -e "\nStarting Qemu emulator:\n" - echo -e "qemu $QEMU_OPTS $iso\n" - qemu $QEMU_OPTS $iso ;; - - usage|*) - # Clear and print usage also for all unknown commands. - # - clear - usage ;; -esac - -exit 0 diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/bin/tazlitobox --- a/core-xfce/rootfs/usr/bin/tazlitobox Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,445 +0,0 @@ -#!/bin/sh -# -# Gtkdialog box for Tazlito - SliTaz Live Tool. -# Tabs are used for ident ans all action should go into functions to -# separate GUI and commands. -# -# (C) GNU gpl v3 - SliTaz GNU/Linux 2010. -# -VERSION=2.2 - -export BIN=$0 - -# Check if user is root. -check_root() -{ - if test $(id -u) != 0 ; then - echo -e " -You must be root to run `basename $0`. Please type 'su' and -root password to become super-user.\n" - exit 0 - fi -} - -# We need to parse flavors.list for GTK tree. -list_flavors() -{ - tazlito list-flavors | grep ^[a-z] | while read line - do - info=`echo -n $line | awk '{print $1 " " $2 " " $3}'` - printinfo=`echo -n $line | awk '{print $1 "|" $2 "|" $3}'` - echo "$printinfo|`echo $line | sed s/\"$info\"//`" - done -} - -recharge_list() -{ - xterm -geometry 90x14 \ - -title "list-flavors --recharge" \ - -e "tazlito list-flavors --recharge | grep ^[a-z] && sleep 2" -} - -# When using gen-liveflavor, gen-flavor or gen-distro, user can put some -# addfiles copied into the rootfs. -addfiles_action() -{ - cd /home/slitaz - mkdir -p distro/addfiles/rootfs/usr/share/images - mkdir -p distro/addfiles/rootcd - file-manager distro/addfiles & -} - -writeiso_action() -{ - xterm -geometry 80x16 \ - -title "writeiso" \ - -e "tazlito writeiso $COMPRESSION" -} - -gen_liveflavor_action() -{ - cd /home/slitaz - sed -i "s/ISO_NAME=.*/ISO_NAME=\"slitaz-$GEN_LIVEFLAVOR_NAME\"/" \ - /etc/tazlito/tazlito.conf - xterm -geometry 80x16 \ - -title "gen-liveflavor" \ - -e "tazlito gen-liveflavor $GEN_LIVEFLAVOR_NAME && echo -e \"----\nENTER to continue...\" && read close" -} - -clean_distro_action() -{ - cd /home/slitaz - xterm -geometry 80x16 \ - -title "clean-distro" \ - -e "tazlito clean-distro && sleep 1" -} - -get_flavor_action() -{ - cd /home/slitaz - xterm -geometry 80x16 \ - -title "get-flavor $COMMUNITY_FLAVOR" \ - -e "tazlito get-flavor $COMMUNITY_FLAVOR && echo -e \"----\nENTER to continue...\" && read close" -} - -gen_distro_action() -{ - cd /home/slitaz - xterm -geometry 80x16 \ - -title "gen-distro" \ - -e "tazlito gen-distro && echo -e \"----\nENTER to continue...\" && read close" -} - -gen_flavor_action() -{ - cd /home/slitaz - xterm -geometry 80x16 \ - -title "gen-flavor $GEN_FLAVOR_NAME" \ - -e "tazlito gen-flavor $GEN_FLAVOR_NAME && echo -e \"----\nENTER to continue...\" && read close" -} - -edit_distro_script() -{ - [ ! -f $DISTRO_SCRIPT ] && echo "#!/bin/sh" > $DISTRO_SCRIPT - chmod +x $DISTRO_SCRIPT - editor $DISTRO_SCRIPT -} - -# Boxes - -export HELP=' - - - - - - - - - - - - - - - - - - - - - - - - -' - -# List all flavors on the mirror. -export LIST_FLAVORS_BOX=' - - - - 500200 - COMMUNITY_FLAVOR - - $BIN list_flavors - - - - - - -' - -# Execute tazlito commands in a XTerm. Notebook: tab-pos="GTK_POS_LEFT" -export TAZLITO_BOX=' - - - - - - - - - /usr/share/pixmaps/tazlito.png - - - - - - - - - - - - - - - - - gzip - COMPRESSION - - - - - - - - - - - - - - - - - - - - - slitaz - GEN_LIVEFLAVOR_NAME - - - - - - - - - - - - - - - - - - - - - - - core - COMMUNITY_FLAVOR - - - - - - - - - - - - - - - - - - - - - - - - slitaz - GEN_FLAVOR_NAME - - - - - - - - - - - - - - - - - - - - - - /home/slitaz/tazlito.conf - CONFIG_FILE - - - - - - - - - - /home/slitaz/distro-packages.list - PKGS_LIST - - - - - - - - - - /home/slitaz/distro.sh - DISTRO_SCRIPT - - - - - - - - - - - - - - - -' - -case $1 in - *_*) - # Exec all function called by args (must have an underscore). - $1 ;; - *) - # Tazlitobox action. - check_root - gtkdialog --center --program=TAZLITO_BOX ;; -esac - -exit 0 diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/bin/wifibox --- a/core-xfce/rootfs/usr/bin/wifibox Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,634 +0,0 @@ -#!/bin/sh -# -# GTKdialog interface to manage wireless connections in a simple way. -# Use tabs to indent, split commands from the GUI and use functions. -# Favorite networks are also supported -# -# (c) 2010 SliTaz GNU/Linux - GNU gpl v3 -# -VERSION=20100118 - -# Export script path and others if needed so we can use them in 'quote'. -export BIN=$0 -export FAVORITES_WIFI=/etc/wireless -. /etc/network.conf - -# Wifibox is only for root. -if test $(id -u) != 0 ; then - exec subox wifibox - exit 0 -fi - -# Sanity check -[ -x /usr/sbin/iwconfig ] || tazpkg get-install wireless_tools -[ -d $FAVORITES_WIFI ] || mkdir -p $FAVORITES_WIFI -rm -f $FAVORITES_WIFI/any.conf - -# Catch ESSIDs and format output for GTK tree. We get the list of -# networks by Cell and without spaces. -detect_wifi_networks() -{ - desktopbox notify "Scanning Wireless interface: $WIFI_INTERFACE" & - if [ -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then - ifconfig $WIFI_INTERFACE up - for i in `iwlist $WIFI_INTERFACE scan | sed s/"Cell "/Cell-/ | grep "Cell-" | awk '{print $1}'` - do - SCAN=`iwlist $WIFI_INTERFACE scan last | \ - awk '/(Cell|ESS|Qual|Encry|IE: WPA)/ {print}' | \ - sed s/"Cell "/Cell-/ | grep -A 5 "$i"` - ESSID=`echo $SCAN | cut -d '"' -f 2` - if echo "$SCAN" | grep -q Quality; then - QUALITY=`echo $SCAN | sed 's/.*Quality=\([^ ]*\).*/\1/' | sed 's/.*Quality:\([^ ]*\).*/\1/'` - else - QUALITY="-" - fi - ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'` - # Check encryption type - if echo "$SCAN" | grep -q WPA; then - ENCRYPTION="${ENCRYPTION} (WPA)" - fi - # Connected or not connected... - if ifconfig | grep -A 1 $WIFI_INTERFACE | \ - grep -q inet && iwconfig $WIFI_INTERFACE | \ - grep ESSID | grep -q -w "$ESSID"; then - STATUS=connected - else - STATUS="-" - fi - echo -n "" - echo "$ESSID | $QUALITY | $ENCRYPTION | $STATUS" - done - fi -} - -# cmdline functions - -# Toggle Software RF Switch on some laptops -set_rfswitch() -{ - for i in /proc/driver/acerhk/wirelessled /proc/acpi/asus/wled ; do - [ -e $i ] && echo $1 > $i - done -} - -# Configure /etc/network.conf and restart connection with init script. -start_wifi_connection() -{ - # Get tmp config created by connect_to_essid() if exists and set - # empty value to clean config file. - if [ -f /tmp/wifi.conf ]; then - . /tmp/wifi.conf - WIFI_MODE="" - WIFI_IWCONFIG_ARGS="" - WIFI_CHANNEL="" - fi - sed -i "s/`grep ^WIFI= /etc/network.conf`/WIFI=\"yes\"/" \ - /etc/network.conf - sed -i "s/`grep ^WIFI_INTERFACE= /etc/network.conf`/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" \ - /etc/network.conf - sed -i "s/`grep ^WIFI_ESSID= /etc/network.conf`/WIFI_ESSID=\"$WIFI_ESSID\"/" \ - /etc/network.conf - sed -i "s/`grep ^WIFI_KEY= /etc/network.conf`/WIFI_KEY=\"$WIFI_KEY\"/" \ - /etc/network.conf - sed -i "s/`grep ^WIFI_MODE= /etc/network.conf`/WIFI_MODE=\"$WIFI_MODE\"/" \ - /etc/network.conf - sed -i "s/`grep ^WIFI_IWCONFIG_ARGS= /etc/network.conf`/WIFI_IWCONFIG_ARGS=\"$WIFI_IWCONFIG_ARGS\"/" \ - /etc/network.conf - sed -i "s/`grep ^WIFI_KEY_TYPE= /etc/network.conf`/WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"/" \ - /etc/network.conf - sed -i "s/`grep ^WIFI_CHANNEL= /etc/network.conf`/WIFI_CHANNEL=\"$WIFI_CHANNEL\"/" \ - /etc/network.conf - [ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid` - ifconfig $WIFI_INTERFACE down - set_rfswitch 1 - iwconfig $WIFI_INTERFACE txpower auto - /etc/init.d/network.sh restart - # Remove tmp file (could be used to have wireless profiles) - rm -f /tmp/wifi.conf - sleep 2 -} - -# We must sleep 4 sec to refresh networks list. -stop_wifi_connexion() -{ - sed -i s/`grep ^WIFI= /etc/network.conf`/WIFI=\"no\"/ \ - /etc/network.conf - [ -x /etc/init.d/wpa_supplicant ] && /etc/init.d/wpa_supplicant stop - ifconfig $WIFI_INTERFACE down - iwconfig $WIFI_INTERFACE txpower off - set_rfswitch 0 - [ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid` - sleep 2 -} - -# Favorite wireless networks use only 3 values: essid. key and type of -# key -favorites_wifi_list() -{ - for i in $FAVORITES_WIFI/*.conf - do - WIFI_ESSID="" - WIFI_KEY="" - WIFI_KEY_TYPE="" - . "$i" - [ -z "$WIFI_ESSID" ] && WIFI_ESSID="Bad config file: $i" - [ -z "$WIFI_KEY_TYPE" ] && WIFI_KEY_TYPE="-" - if [ -n "$WIFI_KEY" ]; then - WIFI_KEY="********" - else - WIFI_KEY="-" - fi - echo "$WIFI_ESSID | $WIFI_KEY_TYPE | $WIFI_KEY" - done -} - -favorite_wifi_actions() -{ - cp -a $FAVORITES_WIFI/"$FAVORITE".conf /tmp/wifi.conf - . /tmp/wifi.conf - export CONNECT_FAVORITE=" - - - - - - - - - - - - - - - -" - gtkdialog --center --program=CONNECT_FAVORITE >/dev/null -} - -add_favorite_network_box() -{ - ADD_FAVORITE=' - - - - - - - - - - - WIFI_ESSID - - - - - - - - WIFI_KEY - - - - - - - ' - tmp="${ADD_FAVORITE}$WIFI_KEY_TYPE" - for i in none WEP WPA any; do - tmp=${tmp}"$i" - done - export ADD_FAVORITE=${tmp}' - WIFI_KEY_TYPE - - - - - - - -' - gtkdialog --center --program=ADD_FAVORITE #>/dev/null -} - -# GUI functions - -helpbutton() -{ - local label; - label="" - [ -n "$3" ] || label="" - cat << EOT - -EOT -} - -manbutton() -{ - cat << EOT - -EOT -} - -# Independant dialog to connect on a wireless network. If encryption -# is on we ask for the security key. -connect_to_essid() -{ - SCAN=`iwlist $WIFI_INTERFACE scan | \ - awk '/(Cell|ESS|Qual|Encry|IE: WPA)/ {print}' | \ - grep -B 1 -A 1 "$ESSID_LIST"` - WIFI_ESSID="$ESSID_LIST" - ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'` - # Create tmp file used by active_wifi_connexion() - cat > /tmp/wifi.conf << _EOF_ -# Wireless connexion configuration file. -WIFI_ESSID="$ESSID_LIST" -_EOF_ - CONNECT_ESSID=" - - - - - " - # We maybe need a key to connect - if [ "$ENCRYPTION" = "on" ] && [ "$ESSID_LIST" != "any" ]; then - # WPA - if echo "$SCAN" | grep -q WPA; then - echo 'WIFI_KEY_TYPE="WPA"' >> /tmp/wifi.conf - CONNECT_ESSID=${CONNECT_ESSID}' - - - - - - . /etc/network.conf; echo "$WIFI_KEY" - WIFI_KEY - - ' - else - # WEP - echo 'WIFI_KEY_TYPE="WEP"' >> /tmp/wifi.conf - CONNECT_ESSID=${CONNECT_ESSID}' - - - - - - . /etc/network.conf; echo "$WIFI_KEY" - WIFI_KEY - - ' - fi - else - # No encryption - echo 'WIFI_KEY=""' >> /tmp/wifi.conf - echo 'WIFI_KEY_TYPE=""' >> /tmp/wifi.conf - start_wifi_connection - exit 0 - fi - # Add key to config file so active_wifi_connexion() can use it. - # WIFI_KEY is not exported if we quote with --> " - export CONNECT_ESSID=${CONNECT_ESSID}' - - - - - -' - gtkdialog --center --program=CONNECT_ESSID #>/dev/null -} - -# Wifibox start with Networks tab. -box() -{ - WIFI_DIALOG=" - - - - - - - - 520160 - ESSID_LIST - - $0 detect_wifi_networks - any | * | off | (auto-connect) - $0 connect_to_essid - refresh:ESSID_LIST - refresh:WIFI_ESSID - refresh:WIFI_KEY - refresh:WIFI_KEY_TYPE - - - - - - - - " - - # Favorite networks - WIFI_DIALOG=${WIFI_DIALOG}" - - - 500160 - FAVORITE - - $0 favorites_wifi_list - any | - | - - $0 favorite_wifi_actions - refresh:FAVORITE - refresh:ESSID_LIST - refresh:WIFI_ESSID - refresh:WIFI_KEY - refresh:WIFI_KEY_TYPE - - - - - - - - " - - # Configuration tab - WIFI_DIALOG=${WIFI_DIALOG}' - - - - - - - - . /etc/network.conf; echo "$WIFI_INTERFACE" - WIFI_INTERFACE - - - - - - - - . /etc/network.conf; echo "$WIFI_ESSID" - WIFI_ESSID - - - - - - - - . /etc/network.conf; echo "$WIFI_KEY" - WIFI_KEY - - ' - tmp2="${WIFI_DIALOG}$WIFI_KEY_TYPE" - for i in none WEP WPA any; do - [ "$i" = "$WIFI_KEY_TYPE" ] || tmp2="$tmp2$i" - done - tmp3=' WIFI_KEY_TYPE - - - - - - - - - - . /etc/network.conf; echo "$WIFI_CHANNEL" - WIFI_CHANNEL - - - - WIFI_MODE' - tmp2="$tmp2$tmp3$WIFI_MODE" - for i in managed ad-hoc master repeater secondary monitor; do - [ "$i" = "$WIFI_MODE" ] || tmp2="$tmp2$i" - done - tmp3=' - - - - - - - . /etc/network.conf; echo "$WIFI_IWCONFIG_ARGS" - WIFI_IWCONFIG_ARGS - ' - WIFI_DIALOG="$tmp$tmp2$tmp3 - $(helpbutton iwconfig 80x24) - $(manbutton 8 iwconfig) - - " - - # Start Button for manual configuration. - WIFI_DIALOG=${WIFI_DIALOG}' - - - - ' - - # Kernel Modules, firmware and tazndisbox note + button. - WIFI_DIALOG=${WIFI_DIALOG}" - - - - - - - - - - - " - # Display firmware stuff, tazndisbox button if installed and close - # tab + notebook - if [ -x /usr/bin/tazndisbox ]; then - WIFI_DIALOG=${WIFI_DIALOG}" - " - fi - WIFI_DIALOG=${WIFI_DIALOG}" - - - - - - - MODULE" - WIFI_DIALOG="${WIFI_DIALOG}$(find /lib/modules/$(uname -r)/kernel/drivers/net/wireless -type f 2> /dev/null | sed 's,/.*/\(.*\).ko.*,\1,')" - WIFI_DIALOG=${WIFI_DIALOG}' - - - - - ' - # Firmware stuff. - tmp=$(for i in /usr/bin/get*firmware; do - [ -x $i ] || continue - [ "$i" = "/usr/bin/get-wifi-firmware" ] && continue - [ -d /var/lib/tazpkg/installed/${i#/usr/bin/get-} ] && continue - echo "${i#/usr/bin/get-}"; done) - [ -n "$tmp" ] && tmp=" - - - - - FIRMWARE$tmp - - - " - -# Bottom buttons -export WIFI_DIALOG=${WIFI_DIALOG}${tmp}" - - - - - - - - -" - gtkdialog --center --program=WIFI_DIALOG #>/dev/null 2>&1 -} - -if [ -n "$1" ]; then - $1 -else - box -fi - -exit 0 diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/applications/burnbox-doc.desktop --- a/core-xfce/rootfs/usr/share/applications/burnbox-doc.desktop Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=Burnbox manual -Name[pt]=Manual do Burnbox -Exec=browser file:///usr/share/doc/slitaz-tools/burnbox.html -Icon=text-html -Type=Application -Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/applications/gpl-license.desktop --- a/core-xfce/rootfs/usr/share/applications/gpl-license.desktop Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=GNU General Public License -Name[pt]=Licença PuÌblica Geral GNU -Exec=browser file:///usr/share/licenses/gpl.txt -Icon=text-x-generic -Type=Application -Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/applications/system-doc.desktop --- a/core-xfce/rootfs/usr/share/applications/system-doc.desktop Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=System Doc -Name[fr]=Doc du système -Name[pt]=Documentação do Sistema -Exec=browser file:///usr/share/doc/slitaz/index.html -Icon=slitaz-doc.png -Type=Application -Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/applications/tazlito-doc.desktop --- a/core-xfce/rootfs/usr/share/applications/tazlito-doc.desktop Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=Tazlito manual -Name[fr]=Manuel de Tazlito -Comment=SliTaz LiveCD generator and editor -Comment[fr]=Manuel de l'outil de geÌneÌration et eÌdition de LiveCD -Exec=browser file:///usr/share/doc/tazlito/tazlito.html -Icon=text-html -Type=Application -Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/applications/tazlitobox.desktop --- a/core-xfce/rootfs/usr/share/applications/tazlitobox.desktop Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=Create a LiveCD -Name[fr]=Créer un LiveCD -Exec=subox tazlitobox -Icon=tazlito -Type=Application -Categories=System; diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/applications/tazpkg-doc.desktop --- a/core-xfce/rootfs/usr/share/applications/tazpkg-doc.desktop Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=Tazpkg manual -Name[fr]=Manuel de Tazpkg -Comment=SliTaz packages manager manual -Comment[fr]=Manuel du gestionnaire de paquets SliTaz -Exec=browser file:///usr/share/doc/tazpkg/tazpkg.html -Icon=text-html -Type=Application -Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/doc/slitaz/book.css --- a/core-xfce/rootfs/usr/share/doc/slitaz/book.css Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,195 +0,0 @@ -/* - CSS style for SliTaz GNU/Linux *book. - Pankso 2007 - www.slitaz.org -*/ - -html { - height: 102%; -} - -body { - font: 13px sans-serif, vernada, arial; - background: #ffffff; - color: black; - margin: 0; -} - -#header { - background: #f0ba08 url(images/css/header.png) repeat-x top; - color: black; - height: 50px; - border-top: 1px solid black; - border-bottom: 1px solid black; -} - -#header h1 { - padding: 10px; -} - -#quicknav { - text-align: right; - font-size: 12px; - color: #666666; - background-color: #eaeaea; - padding: 4px 2px; - font-weight: bold; -} - -#quicknav a { - color: #0F314E; - background: inherit; - text-decoration: none; - padding: 0px 2px; -} - -#quicknav a:hover { - color: #DF8F06; - text-decoration: none; -} - -/* content. */ - -#content { - padding: 20px; - margin: 0px 50px 0px 50px; - width: auto; - text-align: justify; -} - -#content li { - line-height: 1.5em; - text-align: left; -} - -/* Footer. */ - -#footer { - font-size: 11px; - color: black; - height: 20px; - padding: 0px 0px 0px 10px; - margin: 0px; - width: auto; - text-align: center ; -} - -#footer a { - background: #ffffff; - color: #0F314E; -} - -#footer a:hover { - background: #ffffff; - color: blue; -} - -/* Legal informations */ - -#copy { - font-size: 11px ; - text-align: center ; - background: transparent; - color: #a8a8a8; - padding-top: 10px; -} - -#copy a { - background: inherit; - color: #a8a8a8; -} - -#copy a:hover { - background: inherit; - color: blue; -} - -/* Clouds */ - -#cloud { - padding: 10px 120px 10px 120px; - line-height: 3em; - text-align: center; -} -#cloud a { padding: 4px; color: #956411; } -#cloud a.tag1 { font-size: 0.7em; font-weight: 100; } -#cloud a.tag2 { font-size: 0.8em; font-weight: 200; } -#cloud a.tag3 { font-size: 0.9em; font-weight: 300; } -#cloud a.tag4 { font-size: 1.0em; font-weight: 400; } -#cloud a.tag5 { font-size: 1.2em; font-weight: 500; } -#cloud a.tag6 { font-size: 1.4em; font-weight: 600; } -#cloud a.tag7 { font-size: 1.6em; font-weight: 700; } -#cloud a.tag8 { font-size: 1.8em; font-weight: 800; } -#cloud a.tag9 { font-size: 2.2em; font-weight: 900; } -#cloud a.tag10 { font-size: 2.5em; font-weight: 900; } - -/* Div for round corners. */ - -.content-right, .footer-right { - width: 16px; - color: white; - background-color: #333333; -} -.content-right { - background: url(images/css/content-tr.png) no-repeat top right; - height: 16px; - right: 50px; - top: 82px; - position: absolute; -} - -.footer-right { - background: url(images/css/footer-br.png) no-repeat bottom right; - height: 20px; - float: right; -} - -/* General HTML entities for content. */ - -h1 { - margin: 0px 0px 0px 16px; -} - -h2 { - margin: 12px 0; - color: #484B7C; - background: white; -} - -h3 { - font-weight: bold; - color: #6c0023; - background: white; -} - -a { - text-decoration: underline; -} -a:hover { - text-decoration: none; -} - -pre { - padding: 5px; - color: black; - background: #e1e0b0; -} -pre.script { - padding: 10px; - color: black; - background: #e8e8e8; - border: 1px inset #333333; -} - -code { - font-size: 12px; - color: #669900; - background: transparent; -} - -li { - line-height: 1.4em; -} - -hr { - border: 0pt none; -} diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/doc/slitaz/favicon.ico Binary file core-xfce/rootfs/usr/share/doc/slitaz/favicon.ico has changed diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/doc/slitaz/images/css/header.png Binary file core-xfce/rootfs/usr/share/doc/slitaz/images/css/header.png has changed diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/doc/slitaz/index.de.html --- a/core-xfce/rootfs/usr/share/doc/slitaz/index.de.html Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ - - - - SliTaz - System doc (de) - - - - - - - - - - - - - - -
- SliTaz: - Website - Forum - Wiki - Labs -
- - -
- -

Documentation (de)

- -

-SliTaz GNU/Linux stable Release wird mit den Dokumentationen für die -SliTaz-Werkzeuge und den deutschen Release Notes veröffentlicht. Dokumentation -und diese Seite sind über das Openboxenü erreichbar. Bitte konsultieren Sie -ebenfalls die Deutsche Projektseite -für allgemeine Informationen über SliTaz. Für die Benutzung des Systems lesen -Sie bitte das deutsche Handbuch. das Teil des -SliTaz Wiki ist. -

- - -
- - - - -
- Copyright © 2010 SliTaz - - GNU General Public License;
- Documentation uder - GNU Free Documentation License - and valid xHTML 1.0. -
- - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/doc/slitaz/index.en.html --- a/core-xfce/rootfs/usr/share/doc/slitaz/index.en.html Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ - - - - SliTaz - System doc - - - - - - - - - - - - - - -
- SliTaz: - Website - Forum - Wiki - Labs -
- - -
- -

Documentation (en)

- -

-The Cooking version doesn't provide any Release Notes, major changes are announced -on the web site and the Labs provide -fresh news about the project's activity. Like the stable version, you will -find documentation on the web -site and support on the community forum. -

- - - -

Getting started

- - -

Network connections

-

-Click on the "Network Status Monitor" at the bottom right of the screen, -"Configure" and then the network manager (netbox) will come up. You can -go to the "DHCP" tab and click "Start", and Slitaz will send a DHCP request -to the local router. You may also setup a static IP, PPPoE, PPP, VPN and -more using their respective tabs. To configure a wireless connection you -can use SliTaz wifibox by clicking "Wireless Manager" in the Network Manager -or by using the "System Tools" menu entry -> "Wireless networks connections". -

-

-More detailed information can be found in the Handbook: -Network configuration -

- - -

Applications

-

-To have a list of all graphical applications you can use the SliTaz menu button -at the bottom left of the screen. To have a list of command line tools, you -can open a terminal and double press on the tabulation button. And to have -a list of all installed packages you can use the package manager user interface -using the panel icon or from the "System Tools" menu. To install any new packages -you must have a network connection, the DVD of packages or an USB storage device -with downloaded packages from another machine. Naturally any package management -can also be done from the command line and tazpkg. -

- - -

Office suite

-

-The SliTaz packages database provides some lightweight office applications. -All of these packages are easily installable in a few clicks through the packages -manager. SliTaz also provides a simple way to install the famous and powerful -OpenOffice suite: just search OpenOffice in the packages manager, double click -on "get-OpenOffice3" and install the script with the Auto exec option -enabled. -

-

-To have a lightweight office suite; use: Abiword as Word processor, Gnumeric as -Spreadsheet and Homebank for Bank Accounting. -

- - -

Multimedia

-

-Most SliTaz flavors include a wide range of sound card drivers, a volume -mixer and a light audio player to easily listen to any MP3 or OGG files. The Sound -card is autodetected at boot time and audio support works out-of-the-box -on many systems. If you manually add a new user and can't listen to audio, please -check that the user belongs to the audio group. For any other trouble please -look into the full documentation and use the forum for more help. -

-

-Videos can be watched by installing one single package or using a dedicated -LiveCD or LiveUSB system. The SliTaz team have packaged some of the best video players -available under GNU/Linux: mplayer, xine-ui and vlc -

- - -

System information

-

-You can get information on your system by clicking on "System information" -in the System Tools menu, then "Summary". Clicking on the other -options on the side brings you more information, and using the benchmarks -gives you an idea on how fast your computer is. To have a list and control -of all your current processes you can use the "Task Manager". -

- - -

Becoming Root

-

-By default, Slitaz doesn't have its desktop running as root administrator: -it asks for a root password (default root) for any dangerous work. -Therefore, it is safer and more secure. To become root in an xterm, simply -type su, and enter the root password. -

- - -

Installation

-

-SliTaz can be installed to a hard disk or on an USB mass storage device using the -"SliTaz Installer" from the "System Tools" menu. The installer makes a full HD install. -SliTaz won't work in memory (RAM) anymore like in Live or Frugal mode and -everything is persistent. -

-

-To generate a LiveUSB system you can use "Tazusb LiveUSB Tool" from the "System Tools" -menu or tazusb from the command line. More information can be found in the SliTaz -Handbook: LiveUSB media -

- - -
- - - - -
- Copyright © 2010 SliTaz - - GNU General Public License;
- Documentation uder - GNU Free Documentation License - and valid xHTML 1.0. -
- - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/doc/slitaz/index.fr.html --- a/core-xfce/rootfs/usr/share/doc/slitaz/index.fr.html Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ - - - - SliTaz - System doc (fr) - - - - - - - - - - - - - - -
- SliTaz: - Website - Forum - Wiki - Labs -
- - -
- -

Documentation (fr)

- -

-La version en cuisson ou Cooking ne fourni pas de notes de -publication, les chagements sont annonçés sur le site web et -les laboratoires proposent des -nouvelles fraîches. Comme pour la version stable, vous pouvez vous -référer à la documentation du site et trouverez de l'aide sur -le forum du projet. -

- - - - -
- - - - -
- Copyright © 2010 SliTaz - - GNU General Public License;
- Documentation uder - GNU Free Documentation License - and valid xHTML 1.0. -
- - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/doc/slitaz/index.hu.html --- a/core-xfce/rootfs/usr/share/doc/slitaz/index.hu.html Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ - - - - SliTaz - System doc (hu) - - - - - - - - - - - - - -
- SliTaz: - Website - Forum - Wiki - Labs -
- - -
- -

Documentation (hu)

- -

Megjegyzés a kiadáshoz
-

-

A SliTaz GNU/Linux stabil kiadása a rendszerre -telepített projekt-eszközökkel, -leírásokkal és Kiadási -tájékoztatóval jelent meg. A -leírások és ez az oldal az Openbox menün -keresztül érhetők el. A Slitazzal kapcsolatos -általános információkért -kérjük látogassa meg a projekt oldalt . A rendszer -beállításához és -használatához olvassa el a  Kézikönyvet. -A közösségről a -SliTaz Wiki  oldalon -talál dokomentumokat. Támogatást a Slitaz -közösségi Fórumon -keresztül kaphat.

-

A Cooking verzióhoz nincs tájékoztató, a -változtatásokat közzétesszük a honlapon, -és a Labs -szolgáltat új információkat a projektbeli -tevékenységekről. Csakúgy, mint a stabil -verzióhoz, ehhez is található -dokumentáció és támogatás a -közösségi fórumban. -

- - -
- - - - -
- Copyright © 2010 SliTaz - - GNU General Public License;
- Documentation uder - GNU Free Documentation License - and valid xHTML 1.0. -
- - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/doc/slitaz/index.pt.html --- a/core-xfce/rootfs/usr/share/doc/slitaz/index.pt.html Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ - - - - SliTaz - Documentação do Sistema - - - - - - - - - - - - - - -
- SliTaz: - Website - Forum - Wiki - Labs -
- - -
- -

Documentação (pt)

- -

-A versão de testes (cooking) do SliTaz não fornece notas de lançamento, -qualquer mudança para esta versão é anunciada no website e o -SliTaz Labs traz as últimas notícias -e atividades do projeto. Assim como na versão estável, você irá obter -informações sobre a versão de testes no website e suporte no -fórum do projeto. -

- - -
- - - - -
- Copyright © 2010 SliTaz - - GNU General Public License;
- Documentation uder - GNU Free Documentation License - and valid xHTML 1.0. -
- - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/doc/slitaz/template.html --- a/core-xfce/rootfs/usr/share/doc/slitaz/template.html Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ - - - - SliTaz - System doc - - - - - - - - - - - - - - -
- SliTaz: - Website - Forum - Wiki - Labs -
- - -
-
- -

Template

- -

-CONTENT -

- - -
- - - - -
- Copyright © 2010 SliTaz - - GNU General Public License;
- Documentation uder - GNU Free Documentation License - and valid xHTML 1.0. -
- - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/images/slitaz-background.jpg Binary file core-xfce/rootfs/usr/share/images/slitaz-background.jpg has changed diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/pixmaps/slitaz-menu.png Binary file core-xfce/rootfs/usr/share/pixmaps/slitaz-menu.png has changed diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/slim/themes/slitaz/background.png Binary file core-xfce/rootfs/usr/share/slim/themes/slitaz/background.png has changed diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/slim/themes/slitaz/panel.png Binary file core-xfce/rootfs/usr/share/slim/themes/slitaz/panel.png has changed diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/slim/themes/slitaz/slim.theme --- a/core-xfce/rootfs/usr/share/slim/themes/slitaz/slim.theme Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -# SliTaz theme for SLiM -# - -# Messages -msg_color #000000 -msg_font Vera:size=18:bold:dpi=75 -msg_x 50% -msg_y 35% -msg_shadow_color #FFFFFF -msg_shadow_xoffset 1 -msg_shadow_yoffset 1 - -# valid values: stretch, tile -background_style tile -background_color #1e0a0c - -# Input controls -input_panel_x 50% -input_panel_y 50% -input_name_x 64 -input_name_y 179 -input_font Vera:size=11:dpi=75 -input_fgcolor #000000 - -# Username / password request -username_font Vera:size=18:bold:dpi=75 -username_color #eeede9 -username_x 50% -username_y 140 -password_x 50% -password_y 140 -username_shadow_color #000000 -username_shadow_xoffset 1 -username_shadow_yoffset 1 - -username_msg Username: -password_msg Password: diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/webhome/index.html --- a/core-xfce/rootfs/usr/share/webhome/index.html Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ - - - - SliTaz - Web Homepage - - - - - - - - - - - -
- -
- - - - - - - - - - - -
Wikipedia : -
- - - -
-
Google : -
- - -
-
-
- - -
- SliTaz : - Website | - Documentation | - Forum | - Labs | - Packages -
- -
-slitaz-tux -
- - -
- - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/webhome/netsurf.html --- a/core-xfce/rootfs/usr/share/webhome/netsurf.html Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ - - - - SliTaz - Web Homepage - - - - - - - - - - - -
- -
- - - - - - - - - - - -
[ Wikipedia ] -
- - - -
-
[ Google ] -
- - -
-
-
- - -
- SliTaz : - Website | - Documentation | - Forum | - Packages | - Labs -
-
- NetSurf : - Website | - Documentation -
- - -
- - - diff -r 628eb741f4e9 -r 601544e5561e core-xfce/rootfs/usr/share/webhome/style.css --- a/core-xfce/rootfs/usr/share/webhome/style.css Wed Feb 22 23:24:45 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* - CSS style for SliTaz GNU/Linux local home page - www.slitaz.org - (c) 2008 SliTaz Community -*/ - -body { - background: white; - color: black; - font: 13px sans-serif, vernada, arial; - margin: 0 0 0 0; - padding-bottom: 100%; -} - -#header { - background: #f0ba08 url(pics/header.png) repeat-x top; - color: black; - width: 100%; - height: 50px ; - border-top: 1px solid black; - border-bottom: 1px solid black; - /* margin-bottom: 30px; */ -} - -#header h1 { - padding: 10px; - text-align: center; -} - -/* Page content */ - - -#content { - height: auto; - margin: 10px 100px 0px 100px; - padding: 0px 72px 0px 72px; -} - -#content li { - line-height: 1.5em; - text-align: left; -} - -/* Footer */ - -#bottom { - float: none; - background: inherit; - color: black; - width: auto; - clear: both; - padding: 0; - margin: 0; - text-align: center; - vertical-align: middle; -} - -/* CSS class. */ - - -/* HTML styles */ - -h1 { - margin: 0px 0px 0px 16px; -} - -h2 { - color: #DF8F06; - border-left: 10px solid #F3F3F3; - padding: 4px 0px 4px 4px; - margin: 0; -} - -h3 { - font-weight: bold; - color: #6c0023; - background: inherit; -} - -a { - text-decoration: underline; - color: #0F314E; - background: inherit; -} - -a:hover { - text-decoration: none; - color: blue; - background: inherit; -} - -img { - border: 0pt none; -} - -/* Table */ - -table { - width: variable; - margin-left: auto; - margin-right: auto; -} - -td { - width: variable; - padding: 6px; -} - -th { - width: variable; - - - text-align: right; -} diff -r 628eb741f4e9 -r 601544e5561e xfce/packages.list --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/packages.list Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,251 @@ +915resolution +alsa-lib +alsaplayer +alsa-utils +asunder +atk +attr +beaver +busybox +busybox-pam +bzlib +cairo +cairomm +cdparanoia-III +cdrkit +clearlooks +conspy +curl +dbus +dbus-glib +depmod +desktop-file-utils +dialog +dropbear +e2fsprogs +enchant +epdfview +expat +firefox +fontconfig +freetype +fuse +galculator +gamin +garcon +gcc-lib-base +gcolor2 +GConf +gdbm +get-flash-plugin +gettext-base +get-wifi-firmware +glib +glibc-base +glibmm +gparted +gpxe +grub +gtk+ +gtkdialog +gtkmm +gtk-xfce-engine +hal +hardinfo +hicolor-icon-theme +isapnptools +isomaster +jpeg +kbd-busybox +lcms +leafpad +libcap +libcddb +libcdio +libcomerr +libcrypto +libcurl +libdb +libdrm +libexif +libexo +libfirefox +libgcrypt +libgio +libgiomm +libglade +libgnutls +libgpg-error +libical +libIDL +libidn +libmad +libnotify +libogg +libpng +libsexy +libsigc++ +libsoup +libssl +libtasn1 +libtool +libunique +libusb +libusb-compat +libvorbis +libwebkit +libwnck +libxcb +libxfce4ui +libxfce4util +libxfcegui4 +libxml2 +libxslt +linux +linux-crypto +linux-sound +linux-wireless +locale-de +locale-es +locale-fr +locale-pt_BR +lostirc +lua +lxappearance +lxpanel +lxtask +lzlib +lzma +menu-cache +mercurial +mesa +mhwaveedit +midori +mtpaint +nano +ncurses +ncurses-common +ncursesw +ntfs-3g +ntfsprogs +obconf +openbox +openssl +ORBit2 +osmo +pam +pango +pangomm +parted +patch +pciutils +pcmanfm +pcmciautils +pcre +perl +perl-uri +perl-xml-parser +pixman +polkit +poppler +popt +ppp +python +readline +rp-pppoe +shared-mime-info +slim +slitaz-base-files +slitaz-boot-scripts +slitaz-configs +slitaz-doc +slitaz-icon +slitaz-menus +slitaz-polar-cursors +slitaz-tools +slitaz-tools-boxes +sqlite +startup-notification +sudo +sudoku-savant +suggested-applications +sysfsutils +syslinux +syslinux-extra +tazchroot +tazlito +tazpkg +tazusb +tazweb +tazwok +tcl +thunar +thunar-archive-plugin +thunar-volman +tiff +tk +transmission +transset-df +ttf-dejavu +udev +util-linux-ng-blkid +util-linux-ng-getopt +util-linux-ng-uuid +viewnior +web-applications +wireless_tools +wpa_supplicant +xcb-util +xfce4 +xfce4-icon-theme +xfce4-panel +xfce4-session +xfce4-settings +xfce4-slitaz-config +xfce-utils +xfconf +xfdesktop +xfdesktop-extras +xfwm4 +xfwm4-themes +xorg +xorg-base-fonts +xorg-iceauth +xorg-libfontenc +xorg-libICE +xorg-libpciaccess +xorg-libSM +xorg-libX11 +xorg-libXau +xorg-libXaw +xorg-libXcomposite +xorg-libXcursor +xorg-libXdamage +xorg-libXdmcp +xorg-libXext +xorg-libXfixes +xorg-libXfont +xorg-libXft +xorg-libXi +xorg-libXinerama +xorg-libxkbfile +xorg-libXmu +xorg-libXp +xorg-libXpm +xorg-libXrandr +xorg-libXrender +xorg-libXss +xorg-libXt +xorg-libXtst +xorg-libXxf86vm +xorg-rgb +xorg-server +xorg-setxkbmap +xorg-xauth +xorg-xcompmgr +xorg-xf86-input-evdev +xorg-xf86-video-vesa +xorg-xkbcomp +xorg-xkeyboard-config +xterm +zlib diff -r 628eb741f4e9 -r 601544e5561e xfce/receipt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/receipt Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,11 @@ +# SliTaz flavor receipt. + +FLAVOR="xfce" +SHORT_DESC="SliTaz Core with XFCE Desktop, Firefox and Mercurial" +VERSION="20100512" +MAINTAINER="miltonsj@gmail.com" + +FRUGAL_RAM="320M" +ROOTFS_SIZE="252.8M" +INITRAMFS_SIZE="54.3M" +ISO_SIZE="57.1M" diff -r 628eb741f4e9 -r 601544e5561e xfce/rootcd/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootcd/README Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,26 @@ +README SliTaz GNU/Linux CD +=============================================================================== + + +Check the index.html page for more information + + +LICENSE +------- + +Copyright (c) 2006-2012 SliTaz GNU/Linux + +SliTaz is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +(at your option) any later version. + +SliTaz is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with SliTaz; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 +USA diff -r 628eb741f4e9 -r 601544e5561e xfce/rootcd/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootcd/index.html Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,84 @@ + + + + SliTaz GNU/Linux - CD + + + + + + + + + + +
+ + +
+

LiveCD information

+ +

English

+

+ Welcome to the SliTaz GNU/Linux cdrom. To boot SliTaz from a cdrom + just burn the ISO image onto a blank disc. Then reboot your computer + with the disc in your cdrom drive. +

+

+ SliTaz is a micro GNU/Linux distro using BusyBox, a Linux kernel, + and GNU free software. SliTaz also uses goodies from the Debian + project. The goal of SliTaz is to have a GNU/Linux distro working + entirely in memory (RAM) and fully installable to a HD for desktop or + server usage. +

+

+ On the system you will find documentation in /usr/share/doc and the + full GPL license in /usr/share/licenses. +

+ +

Français

+

+ Bienvenue sur la page d'index d'un cdrom de SliTaz GNU/Linux. + Vous devez démarrez votre ordinateur avec le cdrom dans le lecteur + CD ou DVD, pour lancer SliTaz en RAM et sans risques pour la + machine hôte. +

+

+ SliTaz peut fonctionner des mois entiers sans redémarrer, le système + peut fonctionner dans 144 Mb de mémoire vive et sur des machines + sans disque dur. Mais SliTaz est aussi pleinement installable sur + un disque dur et largement extensible via le gestionnaire de + paquets et la compilation de nouvelles applications depuis les + sources. +

+ + +
+ + + + + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootcd/style.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootcd/style.css Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,77 @@ +/* CSS style for SliTaz GNU/Linux generic xHTML files. */ + +html { min-height: 102%; } + +body { + background: #ffffff; + color: black; + font: 13px sans-serif, vernada, arial; + margin: 0; + min-width: 640px; +} + +a { text-decoration: underline; color: #215090; } +a:hover { text-decoration: none; color: blue; } +img { border: 0pt none; vertical-align: middle; } +h2 { color: #444; } +h3 { color: #666; font-size: 140%; } + +#header { + height: 40px; + background: #351a0a; +} + +#header h1 { + margin: 0; + padding: 8px 0 0 8px; + width: 250px; + color: white; + font-size: 20px; + font-style: italic; +} + +#header h1 a { + color: white; + text-decoration: none; + font-size: 20px; + font-style: italic; +} + +#header h1 a:hover, #network a:hover { + color: #d66018; +} + +#network { + float: right; + padding: 12px 5px 0; + font-size: 12px; +} + +#network a { padding: 0 6px; } + +#network a { + color: #fff; + font-weight: bold; + text-decoration: none; +} + +#block { + min-height: 8px; + background: #d66018; + padding: 0; + border-bottom: 1px solid #f5f5f5; +} + +#content { + padding: 30px 80px; + text-align: justify; +} + +#footer { + text-align: center; + border-top: 1px solid #ddd; + padding: 40px; + color: #666; +} + +#footer a { color: #666; padding: 0 2px; } diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/init.d/bootopts.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/init.d/bootopts.sh Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,212 @@ +#!/bin/sh +# /etc/init.d/bootopts.sh - SliTaz boot options from the cmdline. +# +# Earlier boot options are in rcS, ex: config= and modprobe= +# +. /etc/init.d/rc.functions + +# Update fstab for swapon/swapoff +add_swap_in_fstab() +{ + grep -q "$1 " /etc/fstab || cat >> /etc/fstab <> /etc/passwd + echo "$USER::14035:0:99999:7:::" >> /etc/shadow + echo "$USER:x:1000:" >> /etc/group + echo "$USER:!::" >> /etc/gshadow + status + # Audio and cdrom group. + addgroup $USER audio + addgroup $USER cdrom + # /home/$USER files from /etc/skel. + if [ -d /etc/skel ]; then + cp -a /etc/skel /home/$USER + # Path for user desktop files. + for i in /home/$USER/.local/share/applications/*.desktop + do + sed -i s/"user_name"/"$USER"/g $i + done + else + mkdir -p /home/$USER + fi + # Set permissions. + chown -R $USER.$USER /home/$USER + # Slim default user. + if [ -f /etc/slim.conf ]; then + sed -i s/"default_user .*"/"default_user $USER"/\ + /etc/slim.conf + fi +fi + +# Parse /proc/cmdline for boot options. +echo "Parsing kernel cmdline for SliTaz live options... " + +for opt in `cat /proc/cmdline` +do + case $opt in + eject) + # Eject cdrom. + eject /dev/cdrom ;; + autologin) + # Autologin option to skip first graphic login prompt. + echo "auto_login yes" >> /etc/slim.conf ;; + lang=*) + # Check for a specified locale (lang=*). + LANG=${opt#lang=} + echo -n "Setting system locale to: $LANG... " + echo "LANG=$LANG" > /etc/locale.conf + echo "LC_ALL=$LANG" >> /etc/locale.conf + [ ! -d /usr/lib/locale/$LANG ] && localedef \ + -i $LANG -c -f UTF-8 /usr/lib/locale/$LANG & + status ;; + kmap=*) + # Check for a specified keymap (kmap=*). + KEYMAP=${opt#kmap=} + echo -n "Setting system keymap to: $KEYMAP..." + echo "$KEYMAP" > /etc/keymap.conf + status ;; + home=*) + # Check for a specified home partition (home=*) and check for + # user home dir. Note: home=usb is a shorter and easier way to + # have home=/dev/sda1. + DEVICE=${opt#home=} + [ "$DEVICE" = "usb" ] && DEVICE=sda1 + echo "Home has been specified to $DEVICE..." + USBDELAY=`cat /sys/module/usb_storage/parameters/delay_use` + USBDELAY=$((1+$USBDELAY)) + echo "Sleeping $USBDELAY s to let the kernel detect the device... " + sleep $USBDELAY + USER=`cat /etc/passwd | grep 1000 | cut -d ":" -f 1` + DEVID=$DEVICE + if [ -x /sbin/blkid ]; then + # Can be a label, uuid or devname. DEVID gives us first: /dev/name. + DEVID=`/sbin/blkid | grep $DEVICE | cut -d: -f1` + DEVID=${DEVID##*/} + fi + if [ -n "$DEVID" ] && grep -q "$DEVID" /proc/partitions ; then + echo "Mounting /home on /dev/$DEVID... " + [ -d /home/$USER ] && mv /home/$USER /tmp/$USER-files + mount /dev/$DEVID /home -o uid=1000,gid=1000 2>/dev/null \ + || mount /dev/$DEVID /home + # Check if swap file must be generated in /home: swap=size (Mb). + # This option is only used within home=device. + if grep -q "swap=[1-9]*" /proc/cmdline; then + SWAP_SIZE=`cat /proc/cmdline | sed 's/.*swap=\([^ ]*\).*/\1/'` + # DD to gen a virtual disk. + echo "Generating swap file: /home/swap ($SWAP_SIZE)..." + dd if=/dev/zero of=/home/swap bs=1M count=$SWAP_SIZE + # Make the Linux swap filesystem. + mkswap /home/swap + add_swap_in_fstab /home/swap + fi + else + echo "Unable to find $DEVICE... " + fi + # Move all user dir if needed. + if [ ! -d "/home/$USER" ] ; then + mv /tmp/$USER-files /home/$USER + chown -R $USER.$USER /home/$USER + else + rm -rf /tmp/$USER-files + fi + # Install all packages in /home/boot/packages. In live CD and + # USB mode the option home= mounts the device on /home, so we + # already have a boot directory with the Kernel and rootfs. + if [ -d "/home/boot/packages" ]; then + for pkg in /home/boot/packages/*.tazpkg + do + tazpkg install $pkg + done + fi ;; + laptop) + # Laptop option to load related Kernel modules. + echo "Loading laptop modules: ac, battery, fan, yenta_socket..." + for mod in ac battery fan yenta_socket + do + modprobe $mod + done + grep -qs batt /etc/lxpanel/default/panels/panel || + sed -i 's/= cpu/= batt\n}\n\nPlugin {\n type = cpu/' \ + /etc/lxpanel/default/panels/panel 2> /dev/null + # Enable Kernel Laptop mode. + echo "5" > /proc/sys/vm/laptop_mode ;; + mount) + # Mount all ext3 partitions found (opt: mount). + # Get the list of partitions. + DEVICES_LIST=`fdisk -l | grep 83 | cut -d " " -f 1` + # Mount filesystems rw. + for device in $DEVICES_LIST + do + name=${device#/dev/} + # Device can be already used by home=usb. + if ! mount | grep ^$device >/dev/null; then + echo "Mounting partition: $name on /mnt/$name" + mkdir /mnt/$name + mount $device /mnt/$name + fi + done ;; + mount-packages) + # Mount and install packages-XXX.iso (useful without Internet + # connection). + PKGSIGN="LABEL=\"packages-$(cat /etc/slitaz-release)\" TYPE=\"iso9660\"" + PKGDEV=$(blkid | grep "$PKGSIGN" | cut -d: -f1) + [ -z "$PKGDEV" -a -L /dev/cdrom ] && \ + PKGDEV=$(blkid /dev/cdrom | grep "$PKGSIGN" | cut -d: -f1) + if [ -n "$PKGDEV" ]; then + echo -n "Mounting packages archive from $PKGDEV..." + mkdir /packages && mount -t iso9660 -o ro $PKGDEV /packages + status + /packages/install.sh + fi ;; + wm=*) + # Check for a Window Manager (for a flavor, default WM can be changed + # with boot options or with an addfile in /etc/X11/wm.default. + WM=${opt#wm=} + mkdir -p /etc/X11 + case $WM in + jwm) + echo "jwm" > /etc/X11/wm.default ;; + ob|openbox|openbox-session) + echo "openbox" > /etc/X11/wm.default ;; + e17|enlightenment|enlightenment_start) + echo "enlightenment" > /etc/X11/wm.default ;; + esac ;; + *) + continue ;; + esac +done + +# If no default WM fallback to Openbox (we never know). +if [ ! -f /etc/X11/wm.default ]; then + echo "openbox" > /etc/X11/wm.default +fi + +# Activate an eventual swap file or partition. +if [ "`fdisk -l | grep swap`" ]; then + for SWAP_DEV in `fdisk -l | grep swap | awk '{ print $1 }'`; do + echo "Swap memory detected on: $SWAP_DEV" + add_swap_in_fstab $SWAP_DEV + done +fi +if grep -q swap /etc/fstab; then + echo "Activating swap memory..." + swapon -a +fi diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/init.d/network.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/init.d/network.sh Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,216 @@ +#!/bin/sh +# /etc/init.d/network.sh - Network initialization boot script. +# Config file is: /etc/network.conf +# +. /etc/init.d/rc.functions + +if [ -z "$2" ]; then + . /etc/network.conf +else + . $2 +fi + + +Boot() { + # Set hostname. + echo -n "Setting hostname..." + /bin/hostname -F /etc/hostname + status + + # Configure loopback interface. + echo -n "Configuring loopback..." + /sbin/ifconfig lo 127.0.0.1 up + /sbin/route add 127.0.0.1 lo + status +} + + +eth() { +# Use ethernet + ifconfig $INTERFACE up +} + +wifi() { + # For wifi. Users just have to enable it through yes and usually + # essid any will work and the interface is autodetected. + if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then + ifconfig $INTERFACE down + + # Confirm if $WIFI_INTERFACE is the wifi interface + if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then + echo "$WIFI_INTERFACE is not a wifi interface, changing it." + WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ + while read dev; do iwconfig $dev 2>&1 | \ + grep -iq "essid" && { echo $dev ; break; }; \ + done) + [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf + fi + + echo -n "Configuring $WIFI_INTERFACE..." + ifconfig $WIFI_INTERFACE up + if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then + iwconfig $WIFI_INTERFACE txpower on + fi + status + + [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" + + + IWCONFIG_ARGS="" + [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" + [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" + + if [ "$WIFI_KEY_TYPE" == "" ]; then + iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS + fi + + [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in + wep|WEP) + IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY" + iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS +# wpa_supplicant can also deal with wep encryption but iwconfig is preferred +# Tip: Use unquoted strings for hexadecimal key in wep_key0 +# cat /etc/wpa_supplicant.conf > /tmp/wpa.conf +# cat >> /tmp/wpa.conf < /tmp/wpa.conf # load pre-configured multiple profiles + cat >> /tmp/wpa.conf < /tmp/wpa.conf + cat >> /tmp/wpa.conf <> /etc/resolv.conf + done + fi +} + +# Stopping everything +Stop() { + echo "Stopping all interfaces" + ifconfig $INTERFACE down + ifconfig $WIFI_INTERFACE down + + echo "Killing all daemons" + killall udhcpc + killall wpa_supplicant 2>/dev/null + + if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then + echo "Shutting down wifi card" + iwconfig $WIFI_INTERFACE txpower off + fi +} + +Start() { + eth + wifi + dhcp + static_ip +} + + +# looking for arguments: +if [ -z "$1" ]; then + Boot + Start +else + case $1 in + start) + Start ;; + stop) + Stop ;; + restart) + Stop + Start ;; + *) + echo "" + echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" + echo "" + echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m" + echo -e " You can specify another configuration file in the second argument:" + echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf" + echo "" + + esac +fi diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/lxpanel/default/panels/panel --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/lxpanel/default/panels/panel Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,185 @@ +# lxpanel config file. Manually editing is not recommended. +# Use preference dialog in lxpanel to adjust config when you can. + +Global { + edge=bottom + allign=center + margin=0 + widthtype=percent + width=100 + height=24 + transparent=1 + tintcolor=#000000 + alpha=0 + autohide=0 + heightwhenhidden=2 + setdocktype=1 + setpartialstrut=1 + usefontcolor=1 + fontcolor=#ffffff + background=0 + backgroundfile=/usr/share/lxpanel/images/background.png + iconsize=24 +} + +Plugin { + type = space + Config { + Size=4 + } +} + +Plugin { + type = menu + Config { + image=/usr/share/pixmaps/slitaz-menu.png + system { + } + separator { + } + item { + image=/usr/share/icons/SliTaz/16x16/categories/applications-system.png + command=run + } + separator { + } + item { + image=/usr/share/pixmaps/logout.png + command=logout + } + } +} + +Plugin { + type = space + Config { + Size=4 + } +} + +Plugin { + type = launchbar + Config { + Button { + id=xterm.desktop + } + Button { + id=midori.desktop + } + } +} + +Plugin { + type = pager +} + +Plugin { + type = wincmd + Config { + image=window-manager + Button1=iconify + Button2=shade + Toggle=0 + } +} + +Plugin { + type = taskbar + expand=1 + Config { + tooltips=1 + IconsOnly=0 + ShowAllDesks=0 + UseMouseWheel=1 + UseUrgencyHint=1 + FlatButton=1 + MaxTaskWidth=200 + spacing=1 + GroupedTasks=0 + } +} + +Plugin { + type = space + Config { + Size=4 + } +} + +Plugin { + type = tray +} + +Plugin { + type = volumealsa +} + +Plugin { + type = space + Config { + Size=4 + } +} + +Plugin { + type = netstatus + Config { + iface=eth0 + configtool=subox netbox %i + } +} + +Plugin { + type = space + Config { + Size=4 + } +} + +Plugin { + type = batt + Config { + HideIfNoBattery=0 + AlarmCommand=xmessage Battery low + AlarmTime=5 + BackgroundColor=black + BorderWidth=1 + ChargingColor1=#28f200 + ChargingColor2=#22cc00 + DischargingColor1=#ffee00 + DischargingColor2=#d9ca00 + Size=8 + } +} + +Plugin { + type = cpu +} + +Plugin { + type = space + Config { + Size=2 + } +} + +Plugin { + type = launchbar + Config { + Button { + id=tazpkgbox.desktop + } + } +} + +Plugin { + type = dclock + Config { + ClockFmt=%R + TooltipFmt=%A %x + Action=desktopbox calendar + BoldFont=0 + IconOnly=0 + } +} + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/skel/.Xdefaults --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/skel/.Xdefaults Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,20 @@ +!~/.Xdefault: Control the behavior of x-clients. +! + +! Xcursor theme (~/.icons). +! +Xcursor.theme: slitaz-polar + +! XTerm settings. +! +xterm*background: black +xterm*foreground: white +xterm*cursorColor: #6AA2D8 +xterm*scrollBar: off +xterm*faceName: DejaVu Sans Mono +xterm*faceSize: 9 + +! Xload settings. +! +!xload*background: black +!xload*foreground: lightblue diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/skel/.config/pcmanfm/main --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/skel/.config/pcmanfm/main Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,15 @@ +[General] +big_icon_size=32 +terminal=xterm + +[Window] +width=640 +height=480 +splitter_pos=160 +maximized=0 + +[Desktop] +show_desktop=1 +show_wallpaper=1 +wallpaper=/usr/share/images/slitaz-background.jpg +show_wm_menu=1 diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/skel/.gtkrc-2.0 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/skel/.gtkrc-2.0 Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,13 @@ +# ~/.gtkrc-2.0 - GTK+ theme, icon and font configuration. +# +# System files : /usr/share/{themes,icons,fonts} +# Personal files : ~/.icons and ~/.fonts +# + +gtk-theme-name = "SliTaz" +#gtk-theme-name = "Clearlooks-DeepSky" +#gtk-theme-name = "Clearlooks-Olive" + +gtk-icon-theme-name = "SliTaz" + +gtk-font-name = "DejaVu Sans 9" diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/skel/.netsurf/Choices --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/skel/.netsurf/Choices Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,64 @@ +http_proxy:0 +http_proxy_host: +http_proxy_port:8080 +http_proxy_auth:0 +http_proxy_auth_user: +http_proxy_auth_pass: +font_size:128 +font_min_size:85 +font_sans:Sans +font_serif:Serif +font_mono:Monospace +font_cursive:Serif +font_fantasy:Serif +accept_language: +accept_charset: +memory_cache_size:2097152 +disc_cache_age:28 +block_advertisements:0 +minimum_gif_delay:10 +send_referer:1 +animate_images:1 +expire_url:28 +font_default:1 +ca_bundle: +ca_path:/etc/ssl/certs +homepage_url:file:///usr/share/webhome/netsurf.html +url_suggestion:1 +window_x:40 +window_y:40 +window_width:800 +window_height:600 +window_screen_width:0 +window_screen_height:0 +toolbar_status_size:0 +scale:100 +incremental_reflow:1 +min_reflow_period:25 +max_fetchers:24 +max_fetchers_per_host:5 +max_cached_fetch_handles:6 +suppress_curl_debug:1 +target_blank:1 +button_2_tab:1 +margin_top:10 +margin_bottom:10 +margin_left:10 +margin_right:10 +export_scale:70 +suppress_images:0 +remove_backgrounds:0 +enable_loosening:1 +enable_PDF_compression:1 +enable_PDF_password:0 +render_resample:0 +downloads_clear:0 +request_overwrite:1 +show_single_tab:0 +button_type:1 +disable_popups:0 +disable_plugins:0 +history_age:0 +hover_urls:0 +focus_new:0 +new_blank:0 diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/skel/Desktop/slitaz-doc.desktop --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/skel/Desktop/slitaz-doc.desktop Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,5 @@ +[Desktop Entry] +Name=Documentation +Exec=GtkLauncher file:///usr/share/doc/slitaz/index.html +Icon=slitaz-doc.png +Type=Application diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/slitaz/applications.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/slitaz/applications.conf Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,18 @@ +# SliTaz default applications configuration file. Thes apps can be +# started throught wrappers: browser, editor and terminal. +# + +# File manager. +FILE_MANAGER="pcmanfm" + +# Web browser. +BROWSER="midori" + +# Text editor. +EDITOR="leafpad" + +# X terminal. +TERMINAL="xterm" + +# Window manager. +WINDOW_MANAGER="openbox" diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/xdg/openbox/menu.en.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/xdg/openbox/menu.en.xml Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,134 @@ + + + + + + + + file-manager + + + terminal + + + browser + + + editor + + + + desktopbox tazapps + + + + + + + desktopbox new-folder + + + desktopbox new-file + + + + desktopbox add-icons + + + + + + + xcompmgr + + + xcompmgr -c -r 10 + + + xcompmgr -c -f -r 10 + + + + + transset-df --actual --max 60 + + + + + transset-df --click --max 60 + + + + + killall xcompmgr + + + + + + + subox tazlitobox + + + subox tazusbbox + + + + + subox "xterm -e tazusb writefs gzip" + + + + + subox "xterm -e tazusb writefs lzma" + + + + + subox "xterm -e tazusb writefs none" + + + + + + + + obconf + + + + desktopbox autostart + + + + + editor ~/.config/openbox/menu.xml + + + + + + + + + + + + + + + + + + + + + + + + desktopbox logout + + + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/xdg/openbox/menu.fr.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/xdg/openbox/menu.fr.xml Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,137 @@ + + + + + + + + file-manager + + + terminal + + + browser + + + editor + + + + desktopbox tazapps + + + + + + + desktopbox new-folder + + + desktopbox new-file + + + + desktopbox add-icons + + + + + + + xcompmgr + + + xcompmgr -c -r 10 + + + xcompmgr -c -f -r 10 + + + + + transset-df --actual --max 60 + + + + + transset-df --click --max 60 + + + + + killall xcompmgr + + + + + + + subox tazlitobox + + + subox tazusbbox + + + + + subox "xterm -e tazusb writefs gzip" + + + + + subox "xterm -e tazusb writefs lzma" + + + + + subox "xterm -e tazusb writefs none" + + + + + + + + obconf + + + + desktopbox autostart + + + + + editor ~/.config/openbox/menu.xml + + + + + + + + + + + + + + + + + + + + + + + + + desktopbox logout + + + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/xdg/openbox/menu.pt.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/xdg/openbox/menu.pt.xml Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,134 @@ + + + + + + + + pcmanfm + + + terminal + + + browser + + + editor + + + + desktopbox tazapps + + + + + + + desktopbox new-folder + + + desktopbox new-file + + + + desktopbox add-icons + + + + + + + xcompmgr + + + xcompmgr -c -r 10 + + + xcompmgr -c -f -r 10 + + + + + transset-df --actual --max 60 + + + + + transset-df --click --max 60 + + + + + killall xcompmgr + + + + + + + subox tazlitobox + + + subox tazusbbox + + + + + subox "xterm -e tazusb writefs gzip" + + + + + subox "xterm -e tazusb writefs lzma" + + + + + subox "xterm -e tazusb writefs none" + + + + + + + + obconf + + + + desktopbox autostart + + + + + editor ~/.config/openbox/menu.xml + + + + + + + + + + + + + + + + + + + + + + + + desktopbox logout + + + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/etc/xdg/openbox/rc.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/etc/xdg/openbox/rc.xml Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,699 @@ + + + + + 10 + 20 + + + yes + + no + + yes + + no + + 200 + + no + + + + Smart + +
yes
+ + Any + +
+ + SliTaz + NLIMC + + yes + yes + + Sans + 8 + + Bold + + Normal + + + + Sans + 8 + + Bold + + Normal + + + + Sans + 10 + + Normal + + Normal + + + + Sans + 9 + + Normal + + Normal + + + + sans + 9 + + bold + + normal + + + + + + 2 + 1 + + + + 875 + + + + yes + Nonpixel + + Center + + + + 10 + + 10 + + + + + + 0 + 0 + 0 + 0 + + + TopLeft + + 0 + 0 + no + Above + + Vertical + + no + 300 + + 300 + + Middle + + + + C-g + + + + no + no + + + + + no + no + + + + + no + no + + + + + no + no + + + + + no + no + + + + + no + no + + + + + no + no + + + + + no + no + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + + + + + + + + + + + + + client-menu + + + + + + + + + + + + yes + yes + + + + + + + true + App Launcher + + lxpanelctl run + + + + + 8 + + 200 + + 400 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + client-menu + + + + + + + + + + + + top + + + + + + + + + + + left + + + + + + + + + + + right + + + + + + + + + + + bottom + + + + + + + + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + client-menu + + + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + client-list-combined-menu + + + + + root-menu + + + + + + + + + + + + + + + + + + + + + + menu.xml + 200 + + no + + 100 + + yes + + yes + + + + + +
diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/root/.Xdefaults --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/root/.Xdefaults Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,20 @@ +!~/.Xdefault: Control the behavior of x-clients. +! + +! Xcursor theme (~/.icons). +! +Xcursor.theme: slitaz-polar + +! XTerm settings. +! +xterm*background: black +xterm*foreground: white +xterm*cursorColor: #6AA2D8 +xterm*scrollBar: off +xterm*faceName: DejaVu Sans Mono +xterm*faceSize: 9 + +! Xload settings. +! +!xload*background: black +!xload*foreground: lightblue diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/root/.gtkrc-2.0 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/root/.gtkrc-2.0 Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,13 @@ +# ~/.gtkrc-2.0 - GTK+ theme, icon and font configuration. +# +# System files : /usr/share/{themes,icons,fonts} +# Personal files : ~/.icons and ~/.fonts +# + +gtk-theme-name = "SliTaz" +#gtk-theme-name = "Clearlooks-DeepSky" +#gtk-theme-name = "Clearlooks-Olive" + +gtk-icon-theme-name = "SliTaz" + +gtk-font-name = "DejaVu Sans 9" diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/sbin/tazlocale --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/sbin/tazlocale Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,137 @@ +#!/bin/sh +# +# Tazlocale: SliTaz GNU/Linux locale setting using dialog boxes. +# Configuration file is : /etc/locale.conf +# +# 20100201 - GNU gpl. +# + +# Check if user is root. +if test $(id -u) != 0; then + echo -e "\nYou must be root to run `basename $0`!" + echo -e "Type su and root password to become super-user.\n" + exit 1 +fi + +get_messages() +{ + [ -f "/etc/locale.conf" ] && . /etc/locale.conf + LANGUAGE=${LANG%_*} + [ "$LANG" = "C" ] && LANGUAGE="en_US" + case $LANGUAGE in + fr*) + RECONFIG_MSG=" +Veuilliez fermer votre session et vous reloguer pour utiliser SliTaz \ +avec la locale : $LANG" ;; + *) + RECONFIG_MSG=" +Please logout of your current session and login again to use SliTaz \ +with $LANG locale." ;; + esac +} + +# Create symlink to translated files provide by SliTaz language pack, +# doc and config files. +link_language_files() +{ + . /etc/locale.conf + LANGUAGE=${LANG%_*} + [ "$LANG" = "C" ] && LANGUAGE="en" + # Openbox menu in /usr/share/doc/slitaz + if [ -f /etc/xdg/openbox/menu.$LANGUAGE.xml ]; then + cd /etc/xdg/openbox && rm -f menu.xml + ln -s menu.$LANGUAGE.xml menu.xml + fi + # Documentation in /usr/share/doc/slitaz + if [ -f /usr/share/doc/slitaz/index.$LANGUAGE.html ]; then + cd /usr/share/doc/slitaz && rm -f index.html + ln -s index.$LANGUAGE.html index.html + fi + # SliTaz Software Manuals + for soft in tazpkg tazlito tazusb tazwok + do + if [ -f /usr/share/doc/$soft/$soft.$LANGUAGE.html ]; then + cd /usr/share/doc/$soft && rm -f $soft.html + ln -s $soft.$LANGUAGE.html $soft.html + fi + done +} + +# Locale name displayed. +get_locale_name() +{ + for i in `ls -1 /usr/share/i18n/locales/ | grep ^[a-z][a-z]_[A-Z][A-Z]` + do + #name=`locale -a -v | grep -A 2 "locale: $i" | grep "title" | \ + # cut -d " " -f 7` + echo "$i Locale" + done +} + +# We have no locale files in /usr/lib/locale by default. Run localedef in +# background to have a faster boot. +gen_utf8_locale() +{ + localedef -i $locale -c -f UTF-8 /usr/lib/locale/$locale & +} + +# Dialog menu. +dialog_menu() +{ + exec 3>&1 + locale=`$DIALOG --clear \ + --title " SliTaz language configuration " \ + --menu "" 15 70 5 \ +"en" "English" \ +$(get_locale_name) \ +2>&1 1>&3` + retval=$? + exec 3>&- + case $retval in + 0) + continue ;; + 1) + echo "Cancel pressed." + exit 0 ;; + 255) + if test -n "$locale"; then + echo "$locale" + else + echo "ESC pressed." + exit 0 + fi ;; + esac + # Default: C = English + [ "$locale" = "en" ] && locale="en_US" + [ -s /etc/locale.conf ] && RECONFIG="yes" + # System configuration + echo "LANG=$locale" > /etc/locale.conf + echo "LC_ALL=$locale" >> /etc/locale.conf + export LANG=$locale LC_ALL=$locale + gen_utf8_locale + get_messages + # If it's a reconfiguration give an info message. + if [ -n "$RECONFIG" ]; then + $DIALOG --clear \ + --title " Information " \ + --msgbox "$RECONFIG_MSG" 16 70 + fi +} + +case "$1" in + *_*) + # Execute functions (can be called from an other apps). + $1 ;; + link-files) + link_language_files ;; + list) + echo "" + locale -a + echo "" ;; + *) + : ${DIALOG=dialog} + dialog_menu + link_language_files ;; +esac + +exit 0 diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/bin/slitaz-installer --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/bin/slitaz-installer Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,1051 @@ +#!/bin/sh +# slitaz-installer - SliTaz GNU/Linux installer. +# +# So this is SliTaz installer using dialog boxes. All the comments are in +# English but displayed messages are in French. The script starts with a +# few main variables, then all the functions and then a sequence of functions. +# +# (C) 2007-2009 SliTaz - GNU General Public License v3. +# +# Author : Christophe Lincoln +# +VERSION=2.0 + +: ${DIALOG=dialog} + +# We need to know cdrom device and kernel version string to copy files. +DRIVE_NAME=`cat /proc/sys/dev/cdrom/info | grep "drive name" | cut -f 3` +CDROM=/dev/$DRIVE_NAME +KERNEL=vmlinuz-`uname -r` +TARGET_ROOT=/mnt/target +LOG=/var/log/slitaz-installer.log +BACKLIST="SliTaz GNU/Linux installer" +ACTION=$1 + +####################### +# Installer functions # +####################### + +# Messages language setting. +set_messages() +{ + case $LANG in + de*) + . /usr/share/slitaz/messages/de/installer.msg ;; + fr*) + . /usr/share/slitaz/messages/fr/installer.msg ;; + hu*) + . /usr/share/slitaz/messages/hu/installer.msg ;; + pt*) + . /usr/share/slitaz/messages/pt/installer.msg ;; + *) + . /usr/share/slitaz/messages/en/installer.msg ;; + esac +} + +# Display error message. +error_message() +{ + $DIALOG --title " Error " \ + --colors --backtitle "$BACKLIST" \ + --clear --msgbox "\n$ERROR_MSG" 18 70 +} + +# Exit install if user is not root. +check_root() +{ + if test $(id -u) != 0 ; then + ERROR_MSG="\ +[\Z6en\Zn] You must be root administrator to start SliTaz installer, please \ +use 'su' to get a root SHell and restart installation.\n\n +[\Z6fr\Zn] Vous devez être root pour installer SLiTaz GNU/Linux. Vous pouvez \ +utiliser 'su' suivi du mot de passe administrateur pour devenir root \ +et relancer l'installation." + error_message + exit 0 + fi +} + +# This function is used after each screen to contine or abort install. +check_retval() +{ + case $retval in + 0) + continue ;; + 1) + echo -e "\nVoluntary exit.\n" && exit 0 ;; + 3) + continue ;; + 255) + echo -e "ESC pressed.\n" && exit 0 ;; + esac +} + +# Start install with basic information. +start_installer() +{ + $DIALOG --title " Install or Upgrade " \ + --backtitle "$BACKLIST" \ + --extra-button --extra-label "Upgrade" \ + --ok-label "Install" \ + --clear --colors --yesno "$START_INSTALL_MSG" 18 70 + retval=$? + case $retval in + 0) + ACTION=install ;; + 1) + echo -e "\nVoluntary exit.\n" && exit 0 ;; + 3) + ACTION=upgrade ;; + 255) + echo -e "ESC pressed.\n" && exit 0 ;; + esac + echo "start_installer: `date`" > $LOG +} + +# Mount cdrom and verify if it's really SliTaz CD. +mount_cdrom() +{ + ERROR_MSG="" + ( + echo "XXX" && echo 30 + echo -e "\nCreating mount point (/media/cdrom)..." + echo "XXX" + mkdir -p /media/cdrom + sleep 1 + # First try to mount a cdrom + if mount -t iso9660 $CDROM /media/cdrom 2>>$LOG; then + echo "XXX" && echo 60 + echo -e "\nUsing file from cdrom ($CDROM)..." + echo "XXX" + sleep 2 + else + # We may be in LiveUSB mode + if [ -d /home/boot ]; then + echo "XXX" && echo 60 + echo -e "\nUsing file from USB device..." + echo "XXX" + rm /media/cdrom/boot 2>/dev/null + ln -s /home/boot /media/cdrom/boot + sleep 2 + fi + fi + + echo "XXX" && echo 90 + echo -e "\nChecking installation media..." + echo "XXX" + sleep 2 + ) | + $DIALOG --title " Mounting cdrom " \ + --backtitle "$BACKLIST" \ + --gauge "Preparing the installation media..." 18 70 0 + # Exit with error msg if no rootfs.gz found. + if [ ! -f /media/cdrom/boot/rootfs.gz ]; then + ERROR_MSG="$MOUNT_CDROM_ERROR_MSG" + error_message + echo "missing: /media/cdrom/boot/rootfs.gz" >>$LOG + exit 1 + fi +} + +# Display a list of available partitions. +fdisk_list() +{ + LIST_PARTITIONS=`fdisk -l | grep ^/dev | sed s/'e Win95'/'e'/g` + $DIALOG --title " Partition tables " \ + --backtitle "$BACKLIST" \ + --clear --msgbox "\n +Available partitions :\n\n +$LIST_PARTITIONS" 18 70 +} + +# We need a partition to install to (inputbox). +ask_for_target_dev() +{ + exec 3>&1 + TARGET_DEV=`$DIALOG --title " Root Partition " \ + --backtitle "$BACKLIST" --clear \ + --extra-label "List" --extra-button \ + --colors --inputbox "$ASK_FOR_TARGET_DEV_MSG" 18 70 2>&1 1>&3` + retval=$? + exec 3>&- + check_retval + # Display list and come back. + if [ "$retval" = "3" ]; then + fdisk_list + ask_for_target_dev + fi + # Empty value. + if [ -z $TARGET_DEV ]; then + ask_for_target_dev + fi + set_messages + # Check if specified device exists in /proc/partitions. + DEV_NAME=${TARGET_DEV#/dev/} + if cat /proc/partitions | grep -q $DEV_NAME; then + if [ "$DEV_NAME" = "$TARGET_DEV" ]; then + TARGET_DEV="/dev/$DEV_NAME" + fi + echo "ask_for_target_dev: $TARGET_DEV" >>$LOG + else + ERROR_MSG="Partition \Z2$TARGET_DEV\Zn doesn't exist." + error_message + ask_for_target_dev + fi +} + +# Mkfs if needed/wanted on /. +ask_for_mkfs_target_dev() +{ + $DIALOG --title " Format " \ + --backtitle "$BACKLIST" \ + --clear --colors --yesno "$ASK_FOR_MKFS_TARGET_DEV_MSG" 18 70 + retval=$? + case $retval in + 0) + MKFS_TARGET_DEV="ext3" + echo "mkfs_target_dev: ext3" >>$LOG ;; + 1) + CLEAN="clean" + echo "mkfs_target_dev: clean" >>$LOG ;; + 255) + echo -e "ESC pressed.\n" && exit 0 ;; + esac + +} + +# We can have a separate partition for /home. +ask_for_home() +{ + exec 3>&1 + HOME_DEV=`$DIALOG --title " Home Partition " \ + --backtitle "$BACKLIST" --clear \ + --extra-label "List" --extra-button \ + --colors --inputbox " +On most GNU/Linux systems users personal files are stored in the directory \ +/home. Home can be on a separate partition or another hard disk. + +\Z2Home partition to use (Optional):\Zn" 18 70 2>&1 1>&3` + retval=$? + exec 3>&- + check_retval + # Display list and come back. + if [ "$retval" = "3" ]; then + fdisk_list + ask_for_home + fi + if [ -n "$HOME_DEV" ]; then + # Check if specified device exists in /proc/partitions. + DEV_NAME=${HOME_DEV#/dev/} + if cat /proc/partitions | grep -q $DEV_NAME; then + if [ "$DEV_NAME" = "$HOME_DEV" ]; then + HOME_DEV="/dev/$DEV_NAME" + fi + echo "ask_for_home: $HOME_DEV" >>$LOG + else + ERROR_MSG="Partition \Z2$HOME_DEV\Zn doesn't exist." + error_message + ask_for_home + fi + fi +} + +# Mkfs if needed/wanted on /. +ask_for_mkfs_home() +{ + $DIALOG --title " Format " \ + --backtitle "$BACKLIST" \ + --clear --colors --yesno " +Here you can format the /home partition: $HOME_DEV + +SliTaz uses ext3 by default but another filesystem can be used if wanted, \ +for this please adjust /etc/fstab after installation. + +\Z2Do you want to format (Option): $HOME_DEV\Zn" 18 70 + retval=$? + case $retval in + 0) + MKFS_HOME="ext3" + echo "mkfs_home: ext3" >>$LOG ;; + 1) + MKFS_HOME="" + echo "mkfs_home: no" >>$LOG ;; + 255) + echo -e "ESC pressed.\n" && exit 0 ;; + esac + +} + +# Ask for hostname before installing files. +ask_for_hostname() +{ + exec 3>&1 + HOSTNAME=`$DIALOG --title " Hostname " \ + --backtitle "$BACKLIST" --clear \ + --colors --inputbox "$ASK_FOR_HOSTNAME_MSG" 18 70 "slitaz" 2>&1 1>&3` + retval=$? + exec 3>&- + check_retval + # Empty value. + if [ -z $HOSTNAME ]; then + HOSTNAME="slitaz" + fi +} + +# Ask for root password and default user settings. +ask_for_users_settings() +{ + # Root passwd + exec 3>&1 + ROOT_PASSWD=`$DIALOG --title " Root password " \ + --backtitle "$BACKLIST" --clear \ + --colors --nocancel --inputbox " +The root administrator privilege lets you manage and configure the full \ +system. A root user can damage your system so you should always setup a \ +strong password with special characters and/or numbers. + +\Z2Please specify the Root password for your new system:\Zn" 18 70 "root" 2>&1 1>&3` + retval=$? + exec 3>&- + check_retval + # Prevent empty value. + if [ -z $ROOT_PASSWD ]; then + ROOT_PASSWD="root" + fi + # Default user + exec 3>&1 + USER=`$DIALOG --title " User name " \ + --backtitle "$BACKLIST" --clear \ + --colors --nocancel --inputbox " +The default user for the system will have their personal files stored \ +in /home/*user* (and will be automatically added to the audio group). + +\Z2Default user name login:\Zn" 18 70 "tux" 2>&1 1>&3` + retval=$? + exec 3>&- + check_retval + # Prevent empty value. + if [ -z $USER ]; then + USER="tux" + fi + # User passwd + exec 3>&1 + USER_PASSWD=`$DIALOG --title " User password " \ + --backtitle "$BACKLIST" --clear \ + --colors --nocancel --inputbox " +The password for default user $USER. It may be a security risk if too \ +weak and should always be strong if you use a SSH connection through the web. + +\Z2Please specify $USER password:\Zn" 18 70 "tux" 2>&1 1>&3` + retval=$? + exec 3>&- + check_retval + # Prevent empty value. + if [ -z $USER_PASSWD ]; then + USER_PASSWD="tux" + fi +} + +# Tiny summary and last chance to cancel or restart for user. +summary() +{ + $DIALOG --title " Summary " \ + --backtitle "$BACKLIST" \ + --clear --colors --yesno " +Installation settings summary and last chance to cancel or restart all \ +installation steps. + +Root partition: $TARGET_DEV +Home partition: $HOME_DEV +Hostname: $HOSTNAME +Default user: $USER + +\Z2Go and install SliTaz or cancel?\Zn" 18 70 + retval=$? + check_retval +} + +# Mount and mkfs with progress. +prepare_partitions() +{ + ( + echo "XXX" && echo 30 + echo -e "\nPreparing target partition..." + echo "XXX" + # Mount point can be already used. + if mount | grep -q $TARGET_ROOT; then + umount $TARGET_ROOT 2>$LOG + fi + sleep 2 + + if [ "$MKFS_TARGET_DEV" == "ext3" ]; then + echo "XXX" && echo 50 + echo -e "\nExecuting mkfs.ext3 on $TARGET_DEV" + echo "XXX" + mkfs.ext3 $TARGET_DEV >>$LOG 2>>$LOG + else + echo "XXX" && echo 50 + echo -e "\nThe partition ($TARGET_DEV) will be cleaned..." + echo "XXX" + sleep 2 + fi + + if [ "$MKFS_HOME" == "ext3" ]; then + echo "XXX" && echo 70 + echo -e "\nExecuting mkfs.ext3 on $HOME_DEV" + echo "XXX" + mkfs.ext3 -L "Home" $HOME_DEV >>$LOG 2>>$LOG + else + echo "XXX" && echo 70 + echo -e "\nThe partition ($HOME_DEV) will be kept..." + echo "XXX" + sleep 2 + fi + + echo "XXX" && echo 90 + echo -e "\nCreating mount point: $TARGET_ROOT" + echo "XXX" + mkdir -p $TARGET_ROOT + sleep 2 + + ) | + $DIALOG --title " Prepare the target " \ + --backtitle "$BACKLIST" \ + --gauge "Target in preparation..." 18 70 0 + # Mount target. + mount $TARGET_DEV $TARGET_ROOT >>$LOG 2>>$LOG +} + +# Get a clean target device (15%). +clean_target() +{ + if [ "$CLEAN" == "clean" ]; then + echo "XXX" && echo 15 + echo -e "\nCleaning the root partition ($TARGET_DEV)" + echo "XXX" + # Keep /home in case of reinstall. + cd $TARGET_ROOT + for dir in * + do + case "$dir" in + home) + mv $TARGET_ROOT/home $TARGET_ROOT/home.bak + echo "keeping /home found on: $TARGET_DEV" >>$LOG ;; + lost+found) + continue ;; + *) + echo "removing target: $dir" >>$LOG + rm -rf $dir 2>>$LOG ;; + esac + done + if [ -d $TARGET_ROOT/mklost+found ]; then + mklost+found 2>>$LOG + fi + fi + sleep 2 +} + +# Kernel is renamed to standard vmlinuz-$VERSION. +install_kernel() +{ + mkdir -p $TARGET_ROOT/boot + cp /media/cdrom/boot/bzImage $TARGET_ROOT/boot/$KERNEL + echo "install_kernel: $KERNEL" >> $LOG + sleep 2 +} + +# Copy isolinux r/w files (not syslinux, some files are read only). +copy_bootloaders() +{ + if [ -d "/media/cdrom/boot/isolinux" ]; then + mkdir -p $TARGET_ROOT/boot/isolinux + cp -a /media/cdrom/boot/isolinux/*.cfg $TARGET_ROOT/boot/isolinux + cp -a /media/cdrom/boot/isolinux/*.kbd $TARGET_ROOT/boot/isolinux + cp -a /media/cdrom/boot/isolinux/*.txt $TARGET_ROOT/boot/isolinux + cp -a /media/cdrom/boot/isolinux/*.bin $TARGET_ROOT/boot/isolinux + cp -a /media/cdrom/boot/isolinux/*.msg $TARGET_ROOT/boot/isolinux + cp -a /media/cdrom/boot/isolinux/*.lss $TARGET_ROOT/boot/isolinux + cp -a /media/cdrom/boot/isolinux/*.c32 $TARGET_ROOT/boot/isolinux + fi +} + +# Extract lzma'ed or gziped rootfs. +extract_rootfs() +{ + cd $TARGET_ROOT + (zcat rootfs.gz 2>/dev/null || lzma d rootfs.gz -so || \ + cat rootfs.gz) 2>>$LOG | cpio -id 2>>$LOG > /dev/null + rm -f rootfs.gz + # unpack /usr (double check...) + if ls etc/tazlito | grep -q ".extract"; then + for i in etc/tazlito/*.extract; do + [ -f "$i" ] && . $i /media/cdrom + done + fi +} + +# Pre configure freshly installed system (60 - 80%). +pre_config_system() +{ + cd $TARGET_ROOT + # Restore backup of existing /home if exists. + # (created by prepare_target_dev) + if [ -d home.bak ]; then + echo "XXX" && echo 65 + echo -e "\nRestoring directory: /home..." + echo "XXX" + rm -rf home + mv home.bak home + sleep 1 + fi + # Add root device to CHECK_FS in rcS.conf to check filesystem + # on each boot. + echo "XXX" && echo 70 + echo -e "\nAdding $TARGET_DEV and CHECK_FS to file /etc/rcS.conf..." + echo "XXX" + sed -i s#'CHECK_FS=\"\"'#"CHECK_FS=\"$TARGET_DEV\""# etc/rcS.conf + sleep 2 + # Set hostname. + echo "XXX" && echo 80 + echo -e "\nConfiguring host name: $HOSTNAME" + echo "XXX" + echo $HOSTNAME > etc/hostname +} + +# Set root passwd and create user after rootfs extraction. +users_settings() +{ + cat > $TARGET_ROOT/users.sh << _EOF_ +#!/bin/sh +echo "root:$ROOT_PASSWD" | chpasswd +adduser -D -H $USER +addgroup $USER audio +echo "$USER:$USER_PASSWD" | chpasswd +if [ ! -d /home/$USER ]; then + cp -a /etc/skel /home/$USER + chown -R $USER.$USER /home/$USER + # Path for user desktop files. + for i in /home/$USER/.local/share/applications/*.desktop + do + sed -i s/"user_name"/"$USER"/g \$i + done +fi +# Slim default user. +if [ -f /etc/slim.conf ]; then + sed -i s/"default_user .*"/"default_user $USER"/ \ + /etc/slim.conf +fi +_EOF_ + chmod +x $TARGET_ROOT/users.sh + chroot $TARGET_ROOT ./users.sh + rm $TARGET_ROOT/users.sh +} + +# /home can be on a separate partition. If default user exist in /home +# we remove default file crated by users_settings(). +home_config() +{ + echo "home_config: $HOME_DEV" >> $LOG + cd $TARGET_ROOT + mv home/$USER tmp + mount $HOME_DEV home + if [ -d $TARGET_ROOT/home/$USER ]; then + rm -rf tmp/$USER + else + mv tmp/$USER home + fi + echo "$HOME_DEV /home ext3 defaults 0 2" \ + >> etc/fstab + umount home +} + +# Determine GRUB partition number and GRUB disk number. +grub_config() +{ + DISK_LETTER=${TARGET_DEV#/dev/[h-s]d} + DISK_LETTER=${DISK_LETTER%[0-9]} + GRUB_PARTITION=$((${TARGET_DEV#/dev/[h-s]d[a-z]}-1)) + for disk in a b c d e f g h + do + nb=$(($nb+1)) + if [ "$disk" = "$DISK_LETTER" ]; then + GRUB_DISK=$(($nb-1)) + break + fi + done + GRUB_ROOT="(hd${GRUB_DISK},${GRUB_PARTITION})" + # Create the target GRUB configuration. + mkdir -p $TARGET_ROOT/boot/grub + cat > $TARGET_ROOT/boot/grub/menu.lst << _EOF_ +# /boot/grub/menu.lst: GRUB boot loader configuration. +# + +# By default, boot the first entry. +default 0 + +# Boot automatically after 8 secs. +timeout 8 + +# Change the colors. +color yellow/brown light-green/black + +# For booting SliTaz from : $TARGET_DEV +# +title SliTaz GNU/Linux (cooking) (Kernel $KERNEL) +root $GRUB_ROOT +kernel /boot/$KERNEL root=$TARGET_DEV + +_EOF_ + # log + echo "grub_config: $TARGET_ROOT/boot/grub/menu.lst" >>$LOG + sleep 2 +} + +# Files install with gauge, calling for functions or with cmds. +install_files() +{ + ( + + echo "XXX" && echo 10 + echo -e "\nCleaning the root partition if necessary..." + echo "XXX" + clean_target + + echo "XXX" && echo 20 + echo -e "\nInstalling the kernel ($KERNEL)" + echo "XXX" + install_kernel + + echo "XXX" && echo 30 + echo -e "\nCopying the bootloader syslinux/isolinux..." + echo "XXX" + copy_bootloaders + + echo "XXX" && echo 40 + echo -e "\nCopying the compressed system (rootfs.gz)..." + echo "XXX" + cp /media/cdrom/boot/rootfs.gz $TARGET_ROOT + sleep 2 + + echo "XXX" && echo 50 + echo -e "\nExtracting the root system..." + echo "XXX" + extract_rootfs + + echo "XXX" && echo 60 + echo -e "\nPreconfiguring the system..." + echo "XXX" + pre_config_system + + echo "XXX" && echo 70 + echo -e "\nConfiguring root and default $USER account..." + echo "XXX" + users_settings + sleep 2 + + if [ "$HOME_DEV" != "" ]; then + echo "XXX" && echo 80 + echo -e "\nConfiguring $HOME_DEV to be used as /home..." + echo "XXX" + home_config + sleep 2 + fi + + echo "XXX" && echo 90 + echo -e "\nCreating the configuration file for GRUB (menu.lst)..." + echo "XXX" + grub_config + + echo "XXX" && echo 100 + echo -e "\nFinishing the files installation..." + echo "XXX" + echo "install_files: OK" >>$LOG + sleep 2 + + ) | + $DIALOG --title " Install files " \ + --backtitle "$BACKLIST" \ + --gauge "Starting to install files..." 18 70 0 +} + +# GRUB info with disk name used for grub-install. +grub_install() +{ + TARGET_DISK=`echo $TARGET_DEV | sed s/"[0-9]"/''/` + set_messages + $DIALOG --title " GRUB install " \ + --backtitle "$BACKLIST" \ + --clear --colors --yesno "$GRUB_INSTALL_MSG" 18 70 + retval=$? + case $retval in + 0) + ( + echo "XXX" && echo 50 + echo -e "\nRunning grub-install on : $TARGET_DISK" + echo "XXX" + grub-install --no-floppy \ + --root-directory=$TARGET_ROOT $TARGET_DISK 2>>$LOG + echo "XXX" && echo 100 + echo -e "\nFinished installation..." + echo "XXX" + sleep 2 + ) | + $DIALOG --title " GRUB install " \ + --backtitle "$BACKLIST" \ + --gauge "Installing GRUB..." 18 70 0 ;; + 1) + echo "grub_install: NO" >>$LOG ;; + 255) + echo -e "ESC pressed.\n" && exit 0 ;; + esac +} + +# Copy log file, umount target and eject cdrom. +umount_devices() +{ + ( + echo "XXX" && echo 25 + echo -e "\nCopying the log files ($LOG)" + echo "XXX" + cp -a $LOG $TARGET_ROOT/var/log + sleep 2 + echo "XXX" && echo 50 + echo -e "\nUnmounting the target ($TARGET_DEV)" + echo "XXX" + if mount | grep -q $TARGET_ROOT; then + umount $TARGET_ROOT 2>/dev/null + fi + echo "XXX" && echo 75 + echo -e "\nUnmounting and ejecting the cdrom..." + echo "XXX" + if mount | grep -q /media/cdrom; then + umount /media/cdrom + grep -q slitaz-loram-cdrom /etc/init.d/rcS || eject + fi + sleep 2 + echo "XXX" && echo 100 + echo -e "\n$TITLE..." + echo "XXX" + sleep 2 + ) | + $DIALOG --title " $TITLE " \ + --backtitle "$BACKLIST" \ + --gauge "$TITLE starting..." 18 70 0 +} + +# End of installation. +end_of_install() +{ + echo "end_of_install: `date`" >>$LOG + $DIALOG --title " Installation complete " \ + --backtitle "$BACKLIST" \ + --yes-label "Exit" \ + --no-label "Reboot" \ + --clear --colors --yesno "$END_OF_INSTALL_MSG" 18 70 + retval=$? + case $retval in + 0) + TITLE="Exiting" + umount_devices ;; + 1) + TITLE="Rebooting" + umount_devices + reboot || reboot -f ;; + 255) + echo -e "ESC pressed.\n" && exit 0 ;; +esac +} + +##################### +# Upgrade functions # +##################### + +# We need a partition to upgrade SliTaz. +ask_for_upgrade_dev() +{ + exec 3>&1 + UPGRADE_DEV=`$DIALOG --title " Target to upgrade " \ + --backtitle "$BACKLIST" --clear \ + --extra-label "List" --extra-button \ + --colors --inputbox "\n +The installer will upgrade the target by saving all configuration files and \ +the list of installed packages. Then, it will clean the partition and install the \ +version of SliTaz contained on the cdrom, restore the configuration files and \ +reinstall any packages which are not present on the cdrom. You will need an active \ +internet connection before upgrading.\n\n +\Z2Partition containing the system upgrade:\Zn" 18 70 2>&1 1>&3` + retval=$? + exec 3>&- + check_retval + # Display list and come back. + if [ "$retval" = "3" ]; then + fdisk_list + ask_for_upgrade_dev + fi + # Empty value. + if [ -z $UPGRADE_DEV ]; then + ask_for_upgrade_dev + fi + # Check if specified device exists in /proc/partitions. + DEV_NAME=${UPGRADE_DEV#/dev/} + if cat /proc/partitions | grep -q $DEV_NAME; then + echo "ask_for_target_dev: $TARGET_DEV" >>$LOG + else + ERROR_MSG="The partition \Z2$UPGRADE_DEV\Zn doesn't seem to exist." + error_message + ask_for_upgrade_dev + fi + echo "partition to upgrade: $UPGRADE_DEV" >>$LOG +} + +# Prepare the partition to upgrade, backup, install, restore configs +# and reinstall pkgs. +upgrade_process() +{ + ( + echo "XXX" && echo 5 + echo -e "\nPreparing the target partition..." + echo "XXX" + # Mount point can be already used. + if mount | grep -q $TARGET_ROOT; then + umount $TARGET_ROOT 2>$LOG + fi + mkdir -p $TARGET_ROOT && sleep 2 + # Mount target. + mount $UPGRADE_DEV $TARGET_ROOT >>$LOG 2>>$LOG + cd $TARGET_ROOT + TARGET_DEV=$UPGRADE_DEV + set_messages + + echo "XXX" && echo 10 + echo -e "\nSearch for /etc/slitaz-release" + echo "XXX" + if [ -f etc/slitaz-release ]; then + release=`cat etc/slitaz-release` + echo "XXX" && echo 15 + echo -e "\nSliTaz release: $release" + echo "XXX" + else + ERROR_MSG="The partition \Z2$UPGRADE_DEV\Zn doesn't appear to contain \ +a SliTaz system, the file: /etc/slitaz-release doesn't exist." + error_message + exit 0 + fi && sleep 2 + + echo "XXX" && echo 20 + echo -e "\nBackup /etc, /home and the packages list..." + echo "XXX" + # Backup target packages list. + ls -1 var/lib/tazpkg/installed > home/packages-selection.list + for dir in * + do + case "$dir" in + boot) + # Upgrade doesn't prompt for grub install, so backup and + # create a new grub menu.lst. + rm -rf $TARGET_ROOT/boot/vmlinuz-* + mv $TARGET_ROOT/boot/grub/menu.lst \ + $TARGET_ROOT/boot/grub/menu.lst.bak 2>/dev/null + grub_config ;; + home) + mv $TARGET_ROOT/home $TARGET_ROOT/home.bak + echo "keeping /home found on: $UPGRADE_DEV" >>$LOG ;; + etc) + tar czf $TARGET_ROOT/etc.tar.gz etc + mv $TARGET_ROOT/etc $TARGET_ROOT/etc.bak + echo "keeping /etc found on: $UPGRADE_DEV" >>$LOG ;; + var) + if [ -d $TARGET_ROOT/var/www ]; then + mv $TARGET_ROOT/var/www $TARGET_ROOT/www.bak + fi + rm -rf $TARGET_ROOT/var ;; + lost+found) + continue ;; + *) + echo "removing target: $dir" >>$LOG + rm -rf $TARGET_ROOT/$dir 2>>$LOG ;; + esac + done + if [ -d $TARGET_ROOT/mklost+found ]; then + mklost+found 2>>$LOG + fi + sleep 2 + + echo "XXX" && echo 25 + echo -e "\nInstalling the kernel ($KERNEL)" + echo "XXX" + install_kernel + + echo "XXX" && echo 30 + echo -e "\nCopying the bootloader syslinux/isolinux..." + echo "XXX" + copy_bootloaders + + echo "XXX" && echo 35 + echo -e "\nCopying the compressed system (rootfs.gz)..." + echo "XXX" + cp /media/cdrom/boot/rootfs.gz $TARGET_ROOT + sleep 2 + + echo "XXX" && echo 40 + echo -e "\nExtracting the root system..." + echo "XXX" + extract_rootfs + + # Restore backups. + echo "XXX" && echo 42 + echo -e "\nRestoring configuration files..." + echo "XXX" + rm -rf $TARGET_ROOT/home + mv $TARGET_ROOT/home.bak $TARGET_ROOT/home + rm -rf $TARGET_ROOT/etc + mv $TARGET_ROOT/etc.bak $TARGET_ROOT/etc + if [ -d $TARGET_ROOT/www.bak ]; then + rm -rf $TARGET_ROOT/var/www + mv $TARGET_ROOT/www.bak $TARGET_ROOT/var/www + fi + echo "backups restored: `date`" >> $LOG + + # /var/lib/slitaz-installer + mkdir $TARGET_ROOT/var/lib/slitaz-installer + mv $TARGET_ROOT/etc.tar.gz $TARGET_ROOT/var/lib/slitaz-installer + mv $TARGET_ROOT/home/packages-selection.list $TARGET_ROOT/var/lib/slitaz-installer + cd $TARGET_ROOT/var/lib/slitaz-installer + + # LiveCD packages list. + echo "XXX" && echo 46 + echo -e "\nCreating package lists..." + echo "XXX" + ls -1 $TARGET_ROOT/var/lib/tazpkg/installed > packages-cdrom.list || exit 1 + echo "packages-cdrom.list: done" >> $LOG + # Diff + diff packages-cdrom.list packages-selection.list | \ + grep ^+[a-z] | sed s/^+// > packages-selection.diff + echo "packages-selection.diff: done" >> $LOG + # Get mirror list. + tazpkg recharge >>$LOG 2>>$LOG + if [ ! -f /var/lib/tazpkg/packages.list ]; then + ERROR_MSG="The list of available packages on the mirror could not be \ +downloaded. No missing packages will be reinstalled now, but \ +you can do so later by looking at the following list: \n\n + +/var/lib/slitaz-installer/packages-selection.diff" + error_message + fi + sleep 2 + + # Check if the pkg is on the mirror. + echo "XXX" && echo 48 + echo -e "\nChecking the availability of packages..." + echo "XXX" + touch packages-to-install.list + packages=0 + diff=`cat packages-selection.diff | sort` + for pkg in $diff + do + if grep -q ^$pkg-[0-9] /var/lib/tazpkg/packages.list; then + packages=$(($packages+1)) + echo "$pkg" >> packages-to-install.list + fi + done + + # Calculate the percent for one package and install. + echo "XXX" && echo 50 + echo -e "\nInstalling any packages..." + echo "XXX" + sleep 2 + if [ "$packages" == "0" ]; then + echo "packages to install: 0" >> $LOG + else + onepkg=$((48/$packages)) + pct=50 + # Get-install all missing pkgs. + for pkg in `cat packages-to-install.list` + do + pct=$(($pct+$onepkg)) + echo "XXX" && echo $pct + echo -e "\nInstallation of: $pkg..." + echo "XXX" + # Log please. + echo "get-install: $pkg" >>$LOG + # Get install package and answer yes in case of dependencies. + pkgname=`grep ^$pkg /var/lib/tazpkg/packages.list` + tazpkg get $pkg >/dev/null 2>/dev/null + yes "" | tazpkg install $pkgname.tazpkg --root=$TARGET_ROOT >/dev/null 2>/dev/null + rm -f $pkgname.tazpkg + done + fi + echo "XXX" && echo 100 + echo -e "\nInstallation of packages complete..." + echo "XXX" + sleep 2 + ) | + $DIALOG --title " Processing system upgrade " \ + --backtitle "$BACKLIST" \ + --gauge "Target in preparation..." 18 70 0 +} + +# End of system upgrade. +end_of_upgrade() +{ + TARGET_DEV=$UPGRADE_DEV + set_messages + pkgscd=`cat $TARGET_ROOT/var/lib/slitaz-installer/packages-cdrom.list | wc -l` + pkginst=`cat $TARGET_ROOT/var/lib/slitaz-installer/packages-to-install.list | wc -l` + echo "end_of_upgrade: `date`" >>$LOG + $DIALOG --title " Upgrade completed " \ + --backtitle "$BACKLIST" \ + --yes-label "Exit" \ + --no-label "Reboot" \ + --clear --colors --yesno "\n +Upgrade finished. You can now restart (reboot) \ +from your SliTaz GNU/Linux system.\n\n +Packages on the cdrom : $pkgscd\n +Packages installed from the mirror : $pkginst\n" 18 70 + retval=$? + case $retval in + 0) + TITLE="Exiting" + umount_devices ;; + 1) + TITLE="Rebooting" + umount_devices + reboot || reboot -f ;; + 255) + echo -e "ESC pressed.\n" && exit 0 ;; +esac +} + +###################### +# Installer sequence # +###################### + +set_messages +check_root +start_installer + +case $ACTION in + upgrade) + BACKLIST="$BACKLIST (Upgrade)" + mount_cdrom + ask_for_upgrade_dev + upgrade_process + end_of_upgrade ;; + install|*) + mount_cdrom + ask_for_target_dev + ask_for_mkfs_target_dev + ask_for_home + if [ -n "$HOME_DEV" ]; then + ask_for_mkfs_home + fi + ask_for_hostname + ask_for_users_settings + summary + prepare_partitions + install_files + grub_install + end_of_install ;; +esac + +exit 0 diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/bin/tazlito --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/bin/tazlito Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,1825 @@ +#!/bin/sh +# TazLito - SliTaz Live Tool. +# +# Tazlito is a tool to help generate and configure SliTaz LiveCD +# ISO images. You can create a custom distro in one command from a list of +# packages, extract an existing ISO image to hack it, create a new initramfs +# and/or a new ISO. Most commands must be run by root, except the stats +# and the configuration file manipulation. +# +# (C) 2007-2010 SliTaz - GNU General Public License. +# +# Authors : Christophe Lincoln +# Pascal Bellard +# +VERSION=2.0 + +# Tazlito configuration variables to be shorter +# and to use words rather than numbers. +COMMAND=$1 +LIST_NAME=$2 +TMP_DIR=/tmp/tazlito-$$-$RANDOM +TMP_MNT=/media/tazlito-$$-$RANDOM +TOP_DIR=`pwd` +INITRAMFS=rootfs.gz +LOCALSTATE=/var/lib/tazpkg +INSTALLED=$LOCALSTATE/installed +CACHE_DIR=/var/cache/tazpkg +MIRROR=$LOCALSTATE/mirror +DEFAULT_MIRROR="http://mirror.slitaz.org/packages/`cat /etc/slitaz-release`/" + +# Try to include config file, continue if command is gen-config or exit. +# The main config used by default is in /etc/tazlito. +if [ -f "/etc/tazlito/tazlito.conf" ] ; then + CONFIG_FILE="/etc/tazlito/tazlito.conf" +fi +# Specific distro config file can be put in a distro tree. +if [ -f "$TOP_DIR/tazlito.conf" ] ; then + CONFIG_FILE="$TOP_DIR/tazlito.conf" +fi +if [ ! "$CONFIG_FILE" = "" ] ; then + . $CONFIG_FILE +else + if [ "$COMMAND" = "gen-config" ] ; then + continue + else + echo "Unable to find any configuration file. Please read the docs" + echo "or run '`basename $0` gen-config' to get an empty config file." + exit 0 + fi +fi + +# While Tazpkg is not used the default mirror url file does not exist +# and user can't recharge the list of flavors. +if test $(id -u) = 0 ; then + if [ ! -f "$MIRROR" ]; then + echo "$DEFAULT_MIRROR" > $MIRROR + fi +fi + +# Set the rootfs and rootcd path with $DISTRO +# configuration variable. +ROOTFS=$DISTRO/rootfs +ROOTCD=$DISTRO/rootcd +FLAVORS_REPOSITORY=/home/slitaz/flavors + +##################### +# Tazlito functions # +##################### + +# Print the usage. +usage () +{ + echo -e "\nSliTaz Live Tool - Version: $VERSION\n +\033[1mUsage: \033[0m `basename $0` [command] [list|iso|flavor|compression] [dir|iso] +\033[1mCommands: \033[0m\n + usage Print this short usage. + stats View Tazlito and distro configuration statistics. + gen-config Generate a new configuration file for a distro. + configure Configure the main config file or a specific tazlito.conf. + gen-iso Generate a new ISO from a distro tree. + gen-initiso Generate a new initramfs and ISO from the distro tree. + list-flavors List all available package lists on the mirror. + gen-flavor Generate a new live-CD description. + gen-liveflavor Generate a live-CD description from current system. + show-flavor Show live-CD description. + get-flavor Get a flavor's list of packages. + upgrade-flavor Update package list to the latest available versions. + extract-flavor Extract a (*.flavor) flavor into $FLAVORS_REPOSITORY. + pack-flavor Pack (and update) a flavor from $FLAVORS_REPOSITORY. + check-list Check a distro-packages.list for updates. + extract-distro Extract an ISO to a directory and rebuild LiveCD tree. + gen-distro Generate a Live distro and ISO from a list of packages. + clean-distro Remove all files generated by gen-distro. + check-distro Help to check if distro is ready to release. + writeiso Use running system to generate a bootable ISO (with /home). + merge Merge multiple rootfs into one iso. + repack Recompress rootfs into iso with maximum ratio. + frugal-install Frugal install in /boot/frugal from a distro or ISO + emu-iso Emulate an ISO image with Qemu. + burn-iso Burn ISO image to a cdrom using Wodim.\n" +} + +# Status function. +status() +{ + local CHECK=$? + echo -en "\\033[70G[ " + if [ $CHECK = 0 ]; then + echo -en "\\033[1;33mOK" + else + echo -en "\\033[1;31mFailed" + fi + echo -e "\\033[0;39m ]" + return $CHECK +} + +yesorno() +{ + echo -n "$1" + case "$DEFAULT_ANSWER" in + Y|y) answer="y";; + N|n) answer="n";; + *) read answer;; + esac +} + +field() +{ + grep "^$1" "$2" | sed 's/.*: \([0-9KMG\.]*\).*/\1/' +} + +todomsg() +{ + echo -e "\\033[70G[ \\033[1;31mTODO\\033[0;39m ]" +} + +# Download a file from this mirror +download_from() +{ + local i + local mirrors + mirrors="$1" + shift + for i in $mirrors; do + case "$i" in + http://*|ftp://*) wget -c $i$@ && break;; + *) cp $i/$1 . && break;; + esac + done +} + +# Download a file trying all mirrors +download() +{ + local i + for i in $(cat $MIRROR $LOCALSTATE/undigest/*/mirror 2> /dev/null); do + download_from "$i" "$@" && break + done +} + +# Execute hooks provided by some packages +genisohooks() +{ + local here=`pwd` + for i in $(ls $ROOTFS/etc/tazlito/*.$1 2> /dev/null); do + cd $ROOTFS + . $i $ROOTCD + done + cd $here +} + +cleanup() +{ + if [ -d $TMP_MNT ]; then + umount $TMP_MNT + rmdir $TMP_MNT + rm -f /boot + fi +} + +# Echo the package name if the tazpkg is already installed +installed_package_name() +{ + local tazpkg + local package + local VERSION + local EXTRAVERSION + tazpkg=$1 + # Try to find package name and version to be able + # to repack it from installation + # A dash (-) can exist in name *and* in version + package=${tazpkg%-*} + i=$package + while true; do + VERSION="" + eval $(grep -s ^VERSION= $INSTALLED/$i/receipt) + EXTRAVERSION="" + eval $(grep -s ^EXTRAVERSION= $INSTALLED/$i/receipt) + if [ "$i-$VERSION$EXTRAVERSION" = "$tazpkg" ]; then + echo $i + break + fi + case "$i" in + *-*);; + *) break;; + esac + i=${i%-*} + done +} + +# Check if user is root. +check_root() +{ + if test $(id -u) != 0 ; then + echo -e "\nYou must be root to run `basename $0` with this option." + echo -e "Please type 'su' and root password to become super-user.\n" + exit 0 + fi +} + +# Check for the rootfs tree. +check_rootfs() +{ + if [ ! -d "$ROOTFS/etc" ] ; then + echo -e "\nUnable to find a distro rootfs...\n" + exit 0 + fi +} + +# Check for the boot dir into the root CD tree. +verify_rootcd() +{ + if [ ! -d "$ROOTCD/boot" ] ; then + echo -e "\nUnable to find the rootcd boot directory...\n" + exit 0 + fi +} + +create_iso() +{ + genisoimage -R -o $1 -b boot/isolinux/isolinux.bin \ + -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \ + -V "$VOLUM_NAME" -p "$PREPARED" -input-charset iso8859-1 \ + -boot-info-table $2 + if [ -x /usr/bin/isohybrid ]; then + echo -n "Creating hybrid ISO..." + /usr/bin/isohybrid $1 2> /dev/null + status + fi +} + +# Generate a new ISO image using isolinux. +gen_livecd_isolinux() +{ + # Some packages may want to alter iso + genisohooks iso + if [ ! -f "$ROOTCD/boot/isolinux/isolinux.bin" ]; then + echo -e "\nUnable to find isolinux binary.\n" + cleanup + exit 0 + fi + # Set date for boot msg. + if grep -q 'XXXXXXXX' $ROOTCD/boot/isolinux/isolinux.msg; then + DATE=`date +%Y%m%d` + echo -n "Setting build date to: $DATE..." + sed -i s/'XXXXXXXX'/"$DATE"/ $ROOTCD/boot/isolinux/isolinux.msg + status + fi + cd $ROOTCD + echo -n "Computing md5..." + find * -type f ! -name md5sum -exec md5sum {} \; > md5sum + status + cd $DISTRO + echo "" + echo -e "\033[1mGenerating ISO image\033[0m" + echo "================================================================================" + create_iso $ISO_NAME.iso $ROOTCD + echo -n "Creating the ISO md5sum..." + md5sum $ISO_NAME.iso > $ISO_NAME.md5 + status + echo "================================================================================" + # Some packages may want to alter final iso + genisohooks final +} + +lzma_history_bits() +{ + # + # This genertae ISO who boot with Qemu but give + # rootfs errors in frugal or liveUSB mode. + # + #local n + #local sz + #n=20 # 1Mb + #sz=$(du -sk $1 | cut -f1) + #while [ $sz -gt 1024 -a $n -lt 28 ]; do + #n=$(( $n + 1 )) + #sz=$(( $sz / 2 )) + #done + #echo $n + echo 24 +} + +lzma_switches() +{ + echo "-d$(lzma_history_bits $1) -mt$(grep ^processor < /proc/cpuinfo | wc -l)" +} + +# Pack rootfs +pack_rootfs() +{ + ( cd $1 ; find . -print | cpio -o -H newc ) | \ + if [ "$COMPRESSION" = "none" ]; then + echo "Generating uncompressed initramfs... " + cat > $2 + elif [ -x /usr/bin/lzma -a "$COMPRESSION" != "gzip" ]; then + echo -n "Generating lzma'ed initramfs... " + lzma e -si -so $(lzma_switches $1) > $2 + else + echo "Generating gziped initramfs... " + gzip -9 > $2 + fi + echo 1 > /tmp/rootfs +} + +# Compression functions for writeiso. +write_initramfs() +{ + if [ "$COMPRESSION" = "lzma" ]; then + echo -n "Creating rootfs.gz with lzma compression... " + cat /tmp/list | cpio -o -H newc | lzma e -si -so > /rootfs.gz + elif [ "$COMPRESSION" = "gzip" ]; then + echo "Creating rootfs.gz with gzip compression... " + cat /tmp/list | cpio -o -H newc | gzip -9 > /rootfs.gz + else + echo "Creating rootfs.gz without compression... " + cat /tmp/list | cpio -o -H newc > /rootfs.gz + fi + echo 1 > /tmp/rootfs +} + +# Generate a new initramfs from the root filesystem. +gen_initramfs() +{ + # Just in case CTRL+c + rm -f $DISTRO/gen + # Some packages may want to alter rootfs + genisohooks rootfs + cd $1 + echo "" + + # Link duplicate files + find . -type f -size +0c -exec stat -c '%s-%a-%u-%g %i %h %n' {} \; | \ + sort | ( save=0; old_attr=""; old_inode=""; old_link=""; old_file="" + while read attr inode link file; do + if [ "$attr" = "$old_attr" -a "$inode" != "$old_inode" ]; then + if cmp "$file" "$old_file" >/dev/null; then + rm -f "$file" + ln "$old_file" "$file" + inode="$old_inode" + [ "$link" = "1" ] && save="$(expr $save + ${attr%%-*})" + fi + fi + old_attr="$attr" ; old_inode="$inode" ; old_file="$file" + done + echo "$save bytes saved in duplicate files." + ) + + # Use lzma if installed. Display rootfs size in realtime. + rm -f /tmp/rootfs + pack_rootfs . $DISTRO/$(basename $1).gz & + sleep 2 + echo -en "\nFilesystem size:" + while [ ! -f /tmp/rootfs ] + do + sleep 1 + echo -en "\\033[18G`du -sh $DISTRO/rootfs.gz | awk '{print $1}'` " + done + echo -e "\n" + cd $DISTRO + mv $(basename $1).gz $ROOTCD/boot +} + +distro_sizes() +{ + echo "Build date : `date +%Y%m%d\ \at\ \%H:%M:%S`" + echo "Packages : `ls -1 $ROOTFS*$INSTALLED/*/receipt | wc -l`" + echo "Rootfs size : `du -csh $ROOTFS*/ | awk '{ s=$1 } END { print s }'`" + echo "Initramfs size : `du -csh $ROOTCD/boot/rootfs*.gz | awk '{ s=$1 } END { print s }'`" + echo "ISO image size : `du -sh $ISO_NAME.iso | awk '{ print $1 }'`" + echo "================================================================================" + echo "Image is ready: $ISO_NAME.iso" + echo "" +} + +# Print ISO and rootfs size. +distro_stats() +{ + echo "" + echo -e "\033[1mDistro statistics\033[0m ($DISTRO)" + echo "================================================================================" + distro_sizes +} + +# Create an empty configuration file. +empty_config_file() +{ + cat >> tazlito.conf << "EOF" +# tazlito.conf: Tazlito (SliTaz Live Tool) +# configuration file. +# + +# Name of the ISO image to generate. +ISO_NAME="" + +# ISO image volume name. +VOLUM_NAME="SliTaz" + +# Name of the preparer. +PREPARED="$USER" + +# Path to the packages repository and the packages.list. +PACKAGES_REPOSITORY="" + +# Path to the distro tree to gen-distro from a +# list of packages. +DISTRO="" + +# Path to the directory containing additional files +# to copy into the rootfs and rootcd of the LiveCD. +ADDFILES="$DISTRO/addfiles" + +# Default answer for binary question (Y or N) +DEFAULT_ANSWER="ASK" + +# Compression utility (lzma, gzip or none) +COMPRESSION="lzma" +EOF +} + +# extract rootfs.gz somewhere +extract_rootfs() +{ + (zcat $1 || unlzma -c $1 || cat $1) 2>/dev/null | \ + (cd $2; cpio -idm > /dev/null) +} + +# Remove duplicate files +mergefs() +{ + echo -n "Merge $(basename $1) ($(du -hs $1 | awk '{ print $1}')) into " + echo -n "$(basename $2) ($(du -hs $2 | awk '{ print $1}'))" + # merge symlinks files and devices + ( cd $1; find ) | while read file; do + if [ -L $1/$file ]; then + [ -L $2/$file ] && + [ "$(readlink $1/$file)" == "$(readlink $2/$file)" ] && + rm -f $2/$file + elif [ -f $1/$file ]; then + [ -f $2/$file ] && + cmp $1/$file $2/$file > /dev/null 2>&1 && rm -f $2/$file + [ -f $2/$file ] && + [ "$(basename $file)" == "volatile.cpio.gz" ] && + [ "$(dirname $(dirname $file))" == \ + "./var/lib/tazpkg/installed" ] && rm -f $2/$file + elif [ -b $1/$file ]; then + [ -b $2/$file ] && rm -f $2/$file + elif [ -c $1/$file ]; then + [ -c $2/$file ] && rm -f $2/$file + fi + done + + # cleanup directories + ( cd $1; find ) | while read file; do + if [ -d $1/$file ]; then + [ -d $2/$file ] && rmdir $2/$file 2> /dev/null + fi + done + true + status +} + +cleanup_merge() +{ + rm -rf $TMP_DIR + exit 1 +} + +human2cent() +{ +case "$1" in +*k) echo $1 | sed 's/\(.*\).\(.\)k/\1\2/';; +*M) echo $(( $(echo $1 | sed 's/\(.*\).\(.\)M/\1\2/') * 1024));; +*G) echo $(( $(echo $1 | sed 's/\(.*\).\(.\)G/\1\2/') * 1024 * 1024));; +esac +} + +cent2human() +{ +if [ $1 -lt 10000 ]; then + echo "$(($1 / 10)).$(($1 % 10))k" +elif [ $1 -lt 10000000 ]; then + echo "$(($1 / 10240)).$(( ($1/1024) % 10))M" +else + echo "$(($1 / 10485760)).$(( ($1/1048576) % 10))G" +fi +} + +get_size() +{ +cat /var/lib/tazpkg/packages.list $TMP_DIR/packages.list 2>/dev/null | awk "{ \ +if (/^$(echo $1 | sed 's/[$+.\]/\\&/g')$/) get=1; \ +if (/installed/ && get == 1) { print ; get++ } \ +} +END { if (get < 2) print \" 0.0k (0.0k installed)\" }" | \ +sed 's/ *\(.*\) .\(.*\) installed./\1 \2/' | while read packed unpacked; do + echo "$(human2cent $packed) $(human2cent $unpacked)" +done +} + +# Display package list with version, set packed_size and unpacked_size +get_pkglist() +{ +packed_size=0; unpacked_size=0 +grep -v ^# $FLAVORS_REPOSITORY/$1/packages.list > $TMP_DIR/flavor.pkg +while read pkg; do + set -- $(get_size $pkg) + packed_size=$(( $packed_size + $1 )) + unpacked_size=$(( $unpacked_size + $2 )) + for i in $(grep -hs ^$pkg /var/lib/tazpkg/packages.list \ + $TMP_DIR/packages.list); do + echo $i + break + done +done < $TMP_DIR/flavor.pkg +rm -f $TMP_DIR/flavor.pkg +} + +# Update isolinux config files for multiple rootfs +update_bootconfig() +{ + echo -n "Updating boot config files..." + grep -l 'include common' $1/*.cfg | \ + while read file ; do + awk -v n=$(echo $2 | awk '{ print NF/2 }') '{ +if (/label/) label=$0; +else if (/kernel/) kernel=$0; +else if (/append/) { + i=index($0,"rootfs.gz"); + append=substr($0,i+9); +} +else if (/include/) { + for (i = 1; i <= n; i++) { + print label i + print kernel; + initrd="initrd=/boot/rootfs" n ".gz" + for (j = n - 1; j >= i; j--) { + initrd=initrd ",/boot/rootfs" j ".gz"; + } + printf "\tappend %s%s\n",initrd,append; + print ""; + } + print; +} +else print; +}' < $file > $file.$$ + mv -f $file.$$ $file + done + cat >> $1/common.cfg < $1/noram.cfg < /dev/null; then + ln $TARGET/rootcd/boot/vmlinuz* $TARGET/rootcd/boot/bzImage + else + cp $TMP_DIR/boot/bzImage $TARGET/rootcd/boot + fi + status + echo -n "Copying isolinux files..." + cp -a $TMP_DIR/boot/isolinux $TARGET/rootcd/boot + for i in $(ls $TMP_DIR); do + [ "$i" = "boot" ] && continue + cp -a $TMP_DIR/$i $TARGET/rootcd + done + status + if [ -d $TMP_DIR/boot/syslinux ]; then + echo -n "Copying syslinux files..." + cp -a $TMP_DIR/boot/syslinux $TARGET/rootcd/boot + status + fi + if [ -d $TMP_DIR/boot/extlinux ]; then + echo -n "Copying extlinux files..." + cp -a $TMP_DIR/boot/extlinux $TARGET/rootcd/boot + status + fi + if [ -d $TMP_DIR/boot/grub ]; then + echo -n "Copying GRUB files..." + cp -a $TMP_DIR/boot/grub $TARGET/rootcd/boot + status + fi + + echo -n "Copying the rootfs..." + cp $TMP_DIR/boot/rootfs.?z $TARGET/rootcd/boot + status + # Extract initramfs. + cd $TARGET/rootfs + echo -n "Extracting the rootfs... " + extract_rootfs ../rootcd/boot/rootfs.gz $TARGET/rootfs + # unpack /usr + for i in etc/tazlito/*.extract; do + [ -f "$i" ] && . $i ../rootcd + done + # Umount and remove temp directory and cd to $TARGET to get stats. + umount $TMP_DIR && rm -rf $TMP_DIR + cd .. + echo "" + echo "================================================================================" + echo "Extracted : `basename $ISO_IMAGE` ($isosize)" + echo "Distro tree : `pwd`" + echo "Rootfs size : `du -sh rootfs`" + echo "Rootcd size : `du -sh rootcd`" + echo "================================================================================" + echo "" + ;; + list-flavors) + # Show available flavors. + if [ ! -s /etc/tazlito/flavors.list -o "$2" == "--recharge" ]; then + download flavors.list -O - > /etc/tazlito/flavors.list + fi + echo "" + echo -e "\033[1mList of flavors\033[0m" + echo "================================================================================" + cat /etc/tazlito/flavors.list + echo "" + ;; + show-flavor) + # Show flavor description. + FLAVOR=${2%.flavor} + if [ ! -f "$FLAVOR.flavor" ]; then + echo "File $FLAVOR.flavor not found." + exit 1 + fi + mkdir $TMP_DIR + zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i 2> /dev/null) + if [ "$3" = "--brief" ]; then + if [ "$4" != "--noheader" ]; then + echo "Name ISO Rootfs Description" + echo "================================================================================" + fi + printf "%-16.16s %6.6s %6.6s %s\n" "$FLAVOR" \ + "$(field ISO $TMP_DIR/$FLAVOR.desc)" \ + "$(field 'Rootfs size' $TMP_DIR/$FLAVOR.desc)" \ + "$(grep ^Description $TMP_DIR/$FLAVOR.desc | cut -d: -f2)" + else + echo "================================================================================" + cat $TMP_DIR/$FLAVOR.desc + fi + rm -Rf $TMP_DIR + ;; + gen-liveflavor) + # Generate a new flavor form the live system. + FLAVOR=${2%.flavor} + DESC="" + case "$FLAVOR" in + '') echo -n "Flavor name : " + read FLAVOR + [ -z "$FLAVOR" ] && exit 1;; + -?|-h*|--help) echo -e " + +SliTaz Live Tool - Version: $VERSION +\033[1mUsage: \033[0m `basename $0` gen-liveflavor flavor-name [flavor-patch-file] +\033[1mflavor-patch-file format: \033[0m +code data ++ package to add +- package to remove +! non-free package to add +? display message +@ flavor description + +\033[1mExample: \033[0m +@ Developer tools for slitaz maintainers ++ slitaz-toolchain ++ mercurial +" + exit 1;; + esac + mv /etc/tazlito/distro-packages.list \ + /etc/tazlito/distro-packages.list.$$ 2> /dev/null + rm -f distro-packages.list non-free.list 2> /dev/null + tazpkg recharge + [ -n "$3" ] && while read action pkg; do + case "$action" in + +) yes | tazpkg get-install $pkg;; + -) yes | tazpkg remove $pkg;; + !) echo $pkg >> non-free.list;; + @) DESC="$pkg";; + \?) echo -en "$pkg"; read action;; + esac + done < $3 + yes '' | tazlito gen-distro + echo "$DESC" | tazlito gen-flavor "$FLAVOR" + mv /etc/tazlito/distro-packages.list.$$ \ + /etc/tazlito/distro-packages.list 2> /dev/null + ;; + gen-flavor) + # Generate a new flavor from the last iso image generated. + FLAVOR=${2%.flavor} + echo "" + echo -e "\033[1mFlavor generation\033[0m" + echo "================================================================================" + if [ -z "$FLAVOR" ]; then + echo -n "Flavor name : " + read FLAVOR + [ -z "$FLAVOR" ] && exit 1 + fi + check_rootfs + FILES="$FLAVOR.pkglist" + echo -n "Creating file $FLAVOR.flavor..." + for i in rootcd rootfs; do + if [ -d "$ADDFILES/$i" ] ; then + FILES="$FILES\n$FLAVOR.$i" + ( cd "$ADDFILES/$i"; find . | \ + cpio -o -H newc 2> /dev/null | gzip -9 ) > $FLAVOR.$i + fi + done + status + answer=`grep -s ^Description $FLAVOR.desc` + answer=${answer#Description : } + if [ -z "$answer" ]; then + echo -n "Description : " + read answer + fi + echo -n "Compressing flavor $FLAVOR..." + echo "Flavor : $FLAVOR" > $FLAVOR.desc + echo "Description : $answer" >> $FLAVOR.desc + ( cd $DISTRO; distro_sizes) >> $FLAVOR.desc + \rm -f $FLAVOR.pkglist $FLAVOR.nonfree 2> /dev/null + for i in $(ls $ROOTFS$INSTALLED); do + eval $(grep ^VERSION= $ROOTFS$INSTALLED/$i/receipt) + EXTRAVERSION="" + eval $(grep ^EXTRAVERSION= $ROOTFS$INSTALLED/$i/receipt) + eval $(grep ^CATEGORY= $ROOTFS$INSTALLED/$i/receipt) + if [ "$CATEGORY" = "non-free" -a "${i%%-*}" != "get" ] + then + echo "$i" >> $FLAVOR.nonfree + else + echo "$i-$VERSION$EXTRAVERSION" >> $FLAVOR.pkglist + fi + done + [ -s $FLAVOR.nonfree ] && $FILES="$FILES\n$FLAVOR.nonfree" + for i in $LOCALSTATE/undigest/*/mirror ; do + [ -s $i ] && cat $i >> $FLAVOR.mirrors + done + [ -s $FLAVOR.mirrors ] && $FILES="$FILES\n$FLAVOR.mirrors" + echo -e "$FLAVOR.desc\n$FILES" | cpio -o -H newc 2>/dev/null | \ + gzip -9 > $FLAVOR.flavor + rm `echo -e $FILES` + status + echo "================================================================================" + echo "Flavor size : `du -sh $FLAVOR.flavor`" + echo "" + ;; + upgrade-flavor) + # Update package list to the lastest versions available. + FLAVOR=${2%.flavor} + if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then + mkdir $TMP_DIR + zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i >/dev/null ) + echo -n "Updating $FLAVOR package list..." + [ -s /var/lib/tazpkg/packages.list ] || tazpkg recharge + packed_size=0; unpacked_size=0 + while read org; do + i=0 + pkg=$org + while ! grep -q ^$pkg$ /var/lib/tazpkg/packages.txt; do + pkg=${pkg%-*} + i=$(($i + 1)) + [ $i -gt 5 ] && break; + done + set -- $(get_size $pkg) + packed_size=$(( $packed_size + $1 )) + unpacked_size=$(( $unpacked_size + $2 )) + for i in $(grep ^$pkg /var/lib/tazpkg/packages.list); do + echo $i + break + done + done < $TMP_DIR/$FLAVOR.pkglist \ + > $TMP_DIR/$FLAVOR.pkglist.$$ + mv -f $TMP_DIR/$FLAVOR.pkglist.$$ $TMP_DIR/$FLAVOR.pkglist + if [ -s $TMP_DIR/$FLAVOR.rootfs ]; then + packed_size=$(($packed_size \ + + $(cat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 )) + unpacked_size=$(($unpacked_size \ + + $(zcat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 )) + fi + # Estimate lzma + packed_size=$(($packed_size * 2 / 3)) + iso_size=$(( $packed_size + 26000 )) + if [ -s $TMP_DIR/$FLAVOR.rootcd ]; then + iso_size=$(($iso_size \ + + $(zcat $TMP_DIR/$FLAVOR.rootcd | wc -c ) / 100 )) + fi + sed -i -e '/Image is ready/d' \ + -e "s/Rootfs size\( *:\) \(.*\)/Rootfs size\1 $(cent2human $unpacked_size) (estimated)/" \ + -e "s/Initramfs size\( *:\) \(.*\)/Initramfs size\1 $(cent2human $packed_size) (estimated)/" \ + -e "s/ISO image size\( *:\) \(.*\)/ISO image size\1 $(cent2human $iso_size) (estimated)/" \ + -e "s/date\( *:\) \(.*\)/date\1 $(date +%Y%m%d\ \at\ \%H:%M:%S)/" \ + $TMP_DIR/$FLAVOR.desc + ( cd $TMP_DIR ; ls | cpio -o -H newc ) | gzip -9 > \ + $FLAVOR.flavor + status + rm -Rf $TMP_DIR + fi + ;; + extract-flavor) + # Extract a flavor into $FLAVORS_REPOSITORY. + FLAVOR=${2%.flavor} + if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then + mkdir $TMP_DIR + zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i >/dev/null ) + echo -n "Extracting $FLAVOR..." + rm -rf $FLAVORS_REPOSITORY/$FLAVOR 2> /dev/null + mkdir -p $FLAVORS_REPOSITORY/$FLAVOR + echo "FLAVOR=\"$FLAVOR\"" > $FLAVORS_REPOSITORY/$FLAVOR/receipt + grep ^Description $TMP_DIR/$FLAVOR.desc | \ + sed 's/.*: \(.*\)$/SHORT_DESC="\1"/' >> \ + $FLAVORS_REPOSITORY/$FLAVOR/receipt + grep -q '^Rootfs list' $TMP_DIR/$FLAVOR.desc && \ + grep '^Rootfs list' $TMP_DIR/$FLAVOR.desc | \ + sed 's/.*: \(.*\)$/ROOTFS_SELECTION="\1"/' >> \ + $FLAVORS_REPOSITORY/$FLAVOR/receipt + grep '^Rootfs size' $TMP_DIR/$FLAVOR.desc | \ + sed 's/.*: \(.*\)$/ROOTFS_SIZE="\1"/' >> \ + $FLAVORS_REPOSITORY/$FLAVOR/receipt + grep ^Initramfs $TMP_DIR/$FLAVOR.desc | \ + sed 's/.*: \(.*\)$/INITRAMFS_SIZE="\1"/' >> \ + $FLAVORS_REPOSITORY/$FLAVOR/receipt + grep ^ISO $TMP_DIR/$FLAVOR.desc | \ + sed 's/.*: \(.*\)$/ISO_SIZE="\1"/' >> \ + $FLAVORS_REPOSITORY/$FLAVOR/receipt + for i in rootcd rootfs; do + [ -f $TMP_DIR/$FLAVOR.$i ] || continue + mkdir $FLAVORS_REPOSITORY/$FLAVOR/$i + zcat $TMP_DIR/$FLAVOR.$i | \ + (cd $FLAVORS_REPOSITORY/$FLAVOR/$i; \ + cpio -idm > /dev/null) + done + [ -s $TMP_DIR/$FLAVOR.mirrors ] && + cp $TMP_DIR/$FLAVOR.mirrors \ + $FLAVORS_REPOSITORY/$FLAVOR/mirrors + [ -s /var/lib/tazpkg/packages.list ] || tazpkg recharge + while read org; do + i=0 + pkg=$org + while ! grep -q ^$pkg$ /var/lib/tazpkg/packages.txt; do + pkg=${pkg%-*} + i=$(($i + 1)) + [ $i -gt 5 ] && break; + done + echo $pkg + done < $TMP_DIR/$FLAVOR.pkglist \ + > $FLAVORS_REPOSITORY/$FLAVOR/packages.list + status + rm -Rf $TMP_DIR + fi + ;; + pack-flavor) + # Create a flavor from $FLAVORS_REPOSITORY. + FLAVOR=${2%.flavor} + if [ -s $FLAVORS_REPOSITORY/$FLAVOR/receipt ]; then + mkdir $TMP_DIR + echo -n "Creating flavor $FLAVOR..." + [ -s /var/lib/tazpkg/packages.list ] || tazpkg recharge + if [ -s $FLAVORS_REPOSITORY/$FLAVOR/mirrors ]; then + cp $FLAVORS_REPOSITORY/$FLAVOR/mirrors \ + $TMP_DIR/$FLAVOR.mirrors + for i in $(cat $TMP_DIR/$FLAVOR.mirrors); do + wget -O - $i/packages.list >> $TMP_DIR/packages.list + done + fi + [ -s $FLAVORS_REPOSITORY/$FLAVOR/packages.list ] && + get_pkglist $FLAVOR > $TMP_DIR/$FLAVOR.pkglist + if grep -q ^ROOTFS_SELECTION \ + $FLAVORS_REPOSITORY/$FLAVOR/receipt; then + . $FLAVORS_REPOSITORY/$FLAVOR/receipt + set -- $ROOTFS_SELECTION + [ -n "$FRUGAL_RAM" ] || FRUGAL_RAM=$1 + [ -f $FLAVORS_REPOSITORY/$2/packages.list ] || + tazlito extract-flavor $2 + get_pkglist $2 > $TMP_DIR/$FLAVOR.pkglist + fi + for i in rootcd rootfs; do + [ -d $FLAVORS_REPOSITORY/$FLAVOR/$i ] || \ + continue + ( cd $FLAVORS_REPOSITORY/$FLAVOR/$i ; find . | \ + cpio -o -H newc 2> /dev/null ) | \ + gzip -9 >$TMP_DIR/$FLAVOR.$i + done + if [ -s $TMP_DIR/$FLAVOR.rootfs ]; then + packed_size=$(($packed_size \ + + $(cat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 )) + unpacked_size=$(($unpacked_size \ + + $(zcat $TMP_DIR/$FLAVOR.rootfs | wc -c ) / 100 )) + fi + # Estimate lzma + packed_size=$(($packed_size * 2 / 3)) + iso_size=$(( $packed_size + 26000 )) + if [ -s $TMP_DIR/$FLAVOR.rootcd ]; then + iso_size=$(($iso_size \ + + $(zcat $TMP_DIR/$FLAVOR.rootcd | wc -c ) / 100 )) + fi + VERSION="" + MAINTAINER="" + ROOTFS_SELECTION="" + ROOTFS_SIZE="$(cent2human $unpacked_size) (estimated)" + INITRAMFS_SIZE="$(cent2human $packed_size) (estimated)" + ISO_SIZE="$(cent2human $iso_size) (estimated)" + . $FLAVORS_REPOSITORY/$FLAVOR/receipt + cat > $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc <> $TMP_DIR/$FLAVOR.desc < /dev/null) | \ + gzip -9 > $FLAVOR.flavor + status + rm -Rf $TMP_DIR + else + echo "No $FLAVOR flavor in $FLAVORS_REPOSITORY." + fi + ;; + get-flavor) + # Get a flavor's files and prepare for gen-distro. + FLAVOR=${2%.flavor} + echo "" + if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then + echo -n "Cleaning $DISTRO..." + rm -R $DISTRO 2> /dev/null + mkdir -p $DISTRO + status + mkdir $TMP_DIR + echo -n "Extracting flavor $FLAVOR.flavor... " + zcat $FLAVOR.flavor | ( cd $TMP_DIR; cpio -i 2>/dev/null ) + echo -n "Creating distro-packages.list..." + mv $TMP_DIR/$FLAVOR.nonfree non-free.list 2> /dev/null + mv $TMP_DIR/$FLAVOR.pkglist distro-packages.list + status + for i in rootcd rootfs; do + if [ -f $TMP_DIR/$FLAVOR.$i ]; then + echo -n "Adding $i... " + mkdir -p "$ADDFILES/$i" + zcat $TMP_DIR/$FLAVOR.$i | \ + ( cd "$ADDFILES/$i"; cpio -id 2> /dev/null) + fi + done + if [ -s $TMP_DIR/$FLAVOR.mirrors ]; then + n="" + while read line; do + mkdir -p $LOCALSTATE/undigest/$FLAVOR$n + echo "$line" > $LOCALSTATE/undigest/$FLAVOR$n/mirror + n=$(( $n + 1 )) + done < $TMP_DIR/$FLAVOR.mirrors + tazpkg recharge + fi + rm -f /etc/tazlito/rootfs.list + grep -q '^Rootfs list' $TMP_DIR/$FLAVOR.desc && + grep '^Rootfs list' $TMP_DIR/$FLAVOR.desc | \ + sed 's/.*: \(.*\)$/\1/' > /etc/tazlito/rootfs.list + echo -n "Updating tazlito.conf..." + [ -f tazlito.conf ] || cp /etc/tazlito/tazlito.conf . + cat tazlito.conf | grep -v "^#VOLUM_NAME" | \ + sed "s/^VOLUM_NA/VOLUM_NAME=\"SliTaz $FLAVOR\"\\n#VOLUM_NA/" \ + > tazlito.conf.$$ && mv tazlito.conf.$$ tazlito.conf + sed -i "s/ISO_NAME=.*/ISO_NAME=\"slitaz-$FLAVOR\"/" tazlito.conf + status + rm -Rf $TMP_DIR + fi + echo "" + ;; + check-list) + # Use current packages list in $PWD by default. + DISTRO_PKGS_LIST=distro-packages.list + [ -d "$2" ] && DISTRO_PKGS_LIST=$2/distro-packages.list + [ -f "$2" ] && DISTRO_PKGS_LIST=$2 + [ ! -f $DISTRO_PKGS_LIST ] && echo "No packages list found." && exit 0 + echo "" + echo -e "\033[1mLiveCD packages list check\033[0m" + echo "================================================================================" + for pkg in `cat $DISTRO_PKGS_LIST` + do + if ! grep -q "$pkg" /var/lib/tazpkg/packages.list; then + echo "Update: $pkg" + up=$(($up + 1)) + fi + done + [ -z $up ] && echo -e "List is up-to-date\n" && exit 0 + echo "================================================================================" + echo -e "Updates: $up\n" ;; + gen-distro) + # Generate a live distro tree with a set of packages. + # + check_root + + # Check if a package list was specified on cmdline. + LIST_NAME="distro-packages.list" + CDROM="" + while [ -n "$2" ]; do + case "$2" in + --iso=*) + CDROM="-o loop ${2#--iso=}" + ;; + --cdrom) + CDROM="/dev/cdrom" + ;; + --force) + DELETE_ROOTFS="true" + ;; + *) if [ ! -f "$2" ] ; then + echo -e "\nUnable to find the specified packages list." + echo -e "List name : $2\n" + exit 1 + fi + LIST_NAME=$2 + ;; + esac + shift + done + + if [ -d $ROOTFS ] ; then + # Delete $ROOTFS if --force is set on command line + if [ ! -z $DELETE_ROOTFS ]; then + rm -rf $ROOTFS + unset $DELETE_ROOTFS + else + echo -e "\nA rootfs exists in : $DISTRO" + echo -e "Please clean the distro tree or change directory path.\n" + exit 0 + fi + fi + if [ ! -f "$LIST_NAME" -a -d $INSTALLED ] ; then + # Build list with installed packages + for i in $(ls $INSTALLED); do + eval $(grep ^VERSION= $INSTALLED/$i/receipt) + EXTRAVERSION="" + eval $(grep ^EXTRAVERSION= $INSTALLED/$i/receipt) + echo "$i-$VERSION$EXTRAVERSION" >> $LIST_NAME + done + fi + # Exit if no list name. + if [ ! -f "$LIST_NAME" ]; then + echo -e "\nNo packages list found or specified. Please read the docs.\n" + exit 0 + fi + # Start generation. + echo "" + echo -e "\033[1mTazlito generating a distro\033[0m" + echo "================================================================================" + # Misc checks + [ -n "$PACKAGES_REPOSITORY" ] || PACKAGES_REPOSITORY="." + [ -d $PACKAGES_REPOSITORY ] || mkdir -p $PACKAGES_REPOSITORY + # Get the list of packages using cat for a file list. + LIST=`cat $LIST_NAME` + # Verify if all packages in list are present in $PACKAGES_REPOSITORY. + REPACK="" + DOWNLOAD="" + for pkg in $LIST + do + [ "$pkg" = "" ] && continue + pkg=${pkg%.tazpkg} + [ -f $PACKAGES_REPOSITORY/$pkg.tazpkg ] && continue + PACKAGE=$(installed_package_name $pkg) + [ -n "$PACKAGE" -a "$REPACK" = "y" ] && continue + [ -z "$PACKAGE" -a -n "$DOWNLOAD" ] && continue + echo -e "\nUnable to find $pkg in the repository." + echo -e "Path : $PACKAGES_REPOSITORY\n" + if [ -n "$PACKAGE" -a -z "$REPACK" ]; then + yesorno "Repack packages from rootfs (y/N) ? " + REPACK="$answer" + [ "$answer" = "y" ] || REPACK="n" + [ "$DOWNLOAD" = "y" ] && break + fi + if [ -f $MIRROR -a -z "$DOWNLOAD" ]; then + yesorno "Download packages from mirror (Y/n) ? " + DOWNLOAD="$answer" + if [ "$answer" = "n" ]; then + [ -z "$PACKAGE" ] && exit 1 + else + DOWNLOAD="y" + [ -n "$REPACK" ] && break + fi + fi + [ "$REPACK" = "n" -a "$DOWNLOAD" = "n" ] && exit 1 + done + + # Mount cdrom to be able to repack boot-loader packages + if [ ! -e /boot -a -n "$CDROM" ]; then + mkdir $TMP_MNT + if mount -r $CDROM $TMP_MNT 2> /dev/null; then + ln -s $TMP_MNT/boot / + if [ ! -d "$ADDFILES/rootcd" ] ; then + mkdir -p $ADDFILES/rootcd + for i in $(ls $TMP_MNT); do + [ "$i" = "boot" ] && continue + cp -a $TMP_MNT/$i $ADDFILES/rootcd + done + fi + else + rmdir $TMP_MNT + fi + fi + + # Root fs stuff. + echo "Preparing the rootfs directory..." + mkdir -p $ROOTFS + sleep 2 + for pkg in $LIST + do + [ "$pkg" = "" ] && continue + # First copy and extract the package in tmp dir. + pkg=${pkg%.tazpkg} + PACKAGE=$(installed_package_name $pkg) + mkdir -p $TMP_DIR + if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then + # Look for package in cache + if [ -f $CACHE_DIR/$pkg.tazpkg ]; then + ln -s $CACHE_DIR/$pkg.tazpkg $PACKAGES_REPOSITORY + # Look for package in running distribution + elif [ -n "$PACKAGE" -a "$REPACK" = "y" ]; then + tazpkg repack $PACKAGE && \ + mv $pkg.tazpkg $PACKAGES_REPOSITORY + fi + fi + if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then + # Get package from mirror + [ "$DOWNLOAD" = "y" ] && \ + download $pkg.tazpkg && \ + mv $pkg.tazpkg $PACKAGES_REPOSITORY + fi + if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then + echo "Missing package $pkg." + cleanup + exit 1 + fi + done + if [ -f non-free.list ]; then + echo "Preparing non-free packages..." + cp non-free.list $ROOTFS/etc/tazlito/non-free.list + for pkg in $(cat non-free.list); do + if [ ! -d $INSTALLED/$pkg ]; then + if [ ! -d $INSTALLED/get-$pkg ]; then + tazpkg get-install get-$pkg + fi + get-$pkg + fi + tazpkg repack $pkg + pkg=$(ls $pkg*.tazpkg) + grep -q "^$pkg$" $LIST_NAME || \ + echo $pkg >>$LIST_NAME + mv $pkg $PACKAGES_REPOSITORY + done + fi + echo "" + cp $LIST_NAME $DISTRO/distro-packages.list + sed 's/\(.*\)/\1.tazpkg/' < $DISTRO/distro-packages.list > $DISTRO/list-packages + cd $PACKAGES_REPOSITORY + yes y | tazpkg install-list \ + $DISTRO/list-packages --root=$ROOTFS + cd $DISTRO + cp distro-packages.list $ROOTFS/etc/tazlito + # Copy all files from $ADDFILES/rootfs to the rootfs. + if [ -d "$ADDFILES/rootfs" ] ; then + echo -n "Copying addfiles content to the rootfs... " + cp -a $ADDFILES/rootfs/* $ROOTFS + status + fi + echo "Root file system is generated..." + # Root CD part. + echo -n "Preparing the rootcd directory..." + mkdir -p $ROOTCD + status + # Move the boot dir with the Linux kernel from rootfs. + # The boot dir goes directly on the CD. + if [ -d "$ROOTFS/boot" ] ; then + echo -n "Moving the boot directory..." + mv $ROOTFS/boot $ROOTCD + cd $ROOTCD/boot + ln vmlinuz-* bzImage + status + fi + cd $DISTRO + # Copy all files from $ADDFILES/rootcd to the rootcd. + if [ -d "$ADDFILES/rootcd" ] ; then + echo -n "Copying addfiles content to the rootcd... " + cp -a $ADDFILES/rootcd/* $ROOTCD + status + fi + # Execute the distro script (used to perform tasks in the rootfs + # before compression. Give rootfs path in arg + [ -z $DISTRO_SCRIPT ] && DISTRO_SCRIPT=$TOP_DIR/distro.sh + if [ -x $DISTRO_SCRIPT ]; then + echo "Executing distro script..." + sh $DISTRO_SCRIPT $DISTRO + fi + if [ -s /etc/tazlito/rootfs.list ]; then + [ -f $ROOTCD/boot/isolinux/ifmem.c32 ] || + cp /boot/isolinux/ifmem.c32 $ROOTCD/boot/isolinux + n=0 + last=$ROOTFS + while read flavor; do + n=$(($n+1)) + echo "Building $flavor rootfs..." + download $flavor.flavor + zcat $flavor.flavor | cpio -i $flavor.pkglist + sed 's/.*/&.tazpkg/' < $flavor.pkglist \ + > $DISTRO/list-packages0$n + mkdir ${ROOTFS}0$n + cd $PACKAGES_REPOSITORY + yes y | tazpkg install-list \ + $DISTRO/list-packages0$n --root=${ROOTFS}0$n + rm -rf ${ROOTFS}0$n/boot + status + cd $DISTRO + mv $flavor.pkglist ${ROOTFS}0$n/etc/tazlito/distro-packages.list + rm -f $flavor.flavor install-list + mergefs ${ROOTFS}0$n $last + last=${ROOTFS}0$n + done </tmp/list + + for dir in /proc /sys /tmp /mnt /media /media/cdrom /media/flash /media/usbdisk + do + echo $dir >>/tmp/list + done + + # Generate initramfs with specified compression and display rootf + # size in realtime. + rm -f /tmp/rootfs + write_initramfs & + sleep 2 + echo -en "\nFilesystem size:" + while [ ! -f /tmp/rootfs ] + do + sleep 1 + echo -en "\\033[18G`du -sh /rootfs.gz | awk '{print $1}'` " + done + echo -e "\n" + + # Move freshly generated rootfs to the cdrom. + mkdir -p $ROOTCD/boot + mv -f /rootfs.gz $ROOTCD/boot + + # Now we need the kernel and isolinux files. + if mount /dev/cdrom /media/cdrom 2>/dev/null; then + cp /media/cdrom/boot/bzImage $ROOTCD/boot + cp -a /media/cdrom/boot/isolinux $ROOTCD/boot + umount /media/cdrom + else + echo -e " +Unable to mount the cdrom to copy the Kernel and needed files. When SliTaz +is running in RAM the kernel and bootloader files are keeped on the cdrom. +Please insert a LiveCD or unmount curent cdrom to let Tazlito handle the media.\n" + echo -en "----\nENTER to continue..."; read i + exit 1 + fi + + # Generate the iso image. + cd $DISTRO + echo "Generating ISO image..." + genisoimage -R -o $ISO_NAME.iso -b boot/isolinux/isolinux.bin \ + -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \ + -V "SliTaz" -input-charset iso8859-1 -boot-info-table $ROOTCD + if [ -x /usr/bin/isohybrid ]; then + echo -n "Creating hybrid ISO..." + /usr/bin/isohybrid $ISO_NAME.iso 2> /dev/null + status + fi + echo -n "Creating the ISO md5sum..." + md5sum $ISO_NAME.iso > $ISO_NAME.md5 + status + + echo "===============================================================================" + echo "ISO image: `du -sh /home/slitaz/distro/$ISO_NAME.iso`" + echo "" + echo -n "Exit or burn ISO to cdrom (Exit|burn)? "; read anser + case $anser in + burn) + eject + echo -n "Please insert a blank cdrom and press ENTER..." + read i && sleep 2 + tazlito burn-iso /home/slitaz/distro/$ISO_NAME.iso + echo -en "----\nENTER to continue..."; read i ;; + *) + exit 0 ;; + esac ;; + burn-iso) + # Guess cdrom device, ask user and burn the ISO. + # + check_root + DRIVE_NAME=`cat /proc/sys/dev/cdrom/info | grep "drive name" | cut -f 3` + DRIVE_SPEED=`cat /proc/sys/dev/cdrom/info | grep "drive speed" | cut -f 3` + # We can specify an alternative ISO from the cmdline. + if [ -n "$2" ] ; then + iso=$2 + else + iso=$DISTRO/$ISO_NAME.iso + fi + if [ ! -f "$iso" ]; then + echo -e "\nUnable to find ISO : $iso\n" + exit 0 + fi + echo "" + echo -e "\033[1mTazlito burn ISO\033[0m " + echo "================================================================================" + echo "Cdrom device : /dev/$DRIVE_NAME" + echo "Drive speed : $DRIVE_SPEED" + echo "ISO image : $iso" + echo "================================================================================" + echo "" + yesorno "Burn ISO image (y/N) ? " + if [ "$answer" == "y" ]; then + echo "" + echo "Starting Wodim to burn the iso..." && sleep 2 + echo "================================================================================" + wodim speed=$DRIVE_SPEED dev=/dev/$DRIVE_NAME $iso + echo "================================================================================" + echo "ISO image is burned to cdrom." + else + echo -e "\nExiting. No ISO burned." + fi + echo "" + ;; + merge) + # Merge multiple rootfs into one iso. + # + if [ -z "$2" ]; then + cat << EOT +Usage: tazlito merge size1 iso size2 rootfs2 [sizeN rootfsN]... + +Merge multiple rootfs into one iso. Rootfs are like russian dolls +i.e: rootfsN is a subset of rootfsN-1 +rootfs1 is found in iso, sizeN is the RAM size need to launch rootfsN. +The boot loader will select the rootfs according to the RAM size detected. + +Example: +$ tazlito merge 160M slitaz-core.iso 96M rootfs-justx.gz 32M rootfs-base.gz + +Will start slitaz-core with 160M+ RAM, slitaz-justX with 96M-160M RAM, +slitaz-base with 32M-96M RAM and display an error message if RAM < 32M. +EOT + exit 2 + fi + + shift # skip merge + append="$1 slitaz1" + shift # skip size1 + mkdir -p $TMP_DIR/mnt $TMP_DIR/rootfs1 + + ISO=$1.merged + # Extract filesystems + echo -n "Mounting $1" + mount -o loop,ro $1 $TMP_DIR/mnt 2> /dev/null + status || cleanup_merge + cp -a $TMP_DIR/mnt $TMP_DIR/iso + rm -f $TMP_DIR/iso/boot/bzImage + ln $TMP_DIR/iso/boot/vmlinuz* $TMP_DIR/iso/boot/bzImage + umount -d $TMP_DIR/mnt + if [ -f $TMP_DIR/iso/boot/rootfs1.gz ]; then + echo "$1 is already a merged iso. Aborting." + cleanup_merge + fi + if [ ! -f $TMP_DIR/iso/boot/isolinux/ifmem.c32 ]; then + if [ ! -f /boot/isolinux/ifmem.c32 ]; then + cat < /dev/null + status || cleanup_merge + cp -a $TMP_DIR/mnt $TMP_DIR/iso + umount -d $TMP_DIR/mnt + + for i in $TMP_DIR/iso/boot/rootfs* ; do + echo -n "Repacking $(basename $i)" + (zcat $i || unlzma -c $i || cat $i) \ + 2>/dev/null > $TMP_DIR/rootfs + lzma e $TMP_DIR/rootfs $i \ + $(lzma_switches $TMP_DIR/rootfs) + status + done + + echo "Generating $ISO" + create_iso $ISO $TMP_DIR/iso + rm -rf $TMP_DIR ;; + + frugal-install|-fi) + ISO_IMAGE="$2" + echo "" + mkdir -p /boot/frugal + if [ -f "$ISO_IMAGE" ]; then + echo -n "Using ISO image: $ISO_IMAGE" + mkdir -p /tmp/iso && mount -o loop $ISO_IMAGE /tmp/iso + status + echo -n "Installing the Kernel and rootfs..." + cp -a /tmp/iso/boot/bzImage /boot/frugal + cp -a /tmp/iso/boot/rootfs.gz /boot/frugal + umount /tmp/iso + status + else + echo -n "Using distro: $DISTRO" + cd $DISTRO && status + echo -n "Installing the Kernel and rootfs..." + cp -a $DISTRO/rootcd/boot/bzImage /boot/frugal + cp -a $DISTRO/rootcd/boot/rootfs.gz /boot/frugal + status + fi + # Grub entry + if ! grep -q "^kernel /boot/frugal/bzImage" /boot/grub/menu.lst; then + echo -n "Configuring GRUB menu list..." + cat >> /boot/grub/menu.lst << EOT +title SliTaz GNU/Linux (frugal) +root (hd0,0) +kernel /boot/frugal/bzImage root=/dev/null +initrd /boot/frugal/rootfs.gz +EOT + else + echo -n "GRUB menu list is up-to-date..." + fi + status + echo "" ;; + + emu-iso) + # Emulate an ISO image with Qemu. + if [ -n "$2" ] ; then + iso=$2 + else + iso=$DISTRO/$ISO_NAME.iso + fi + if [ ! -f "$iso" ]; then + echo -e "\nUnable to find ISO : $iso\n" + exit 0 + fi + if [ ! -x "/usr/bin/qemu" ]; then + echo -e "\nUnable to find Qemu binary. Please install: qemu\n" + exit 0 + fi + echo -e "\nStarting Qemu emulator:\n" + echo -e "qemu $QEMU_OPTS $iso\n" + qemu $QEMU_OPTS $iso ;; + + usage|*) + # Clear and print usage also for all unknown commands. + # + clear + usage ;; +esac + +exit 0 diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/bin/tazlitobox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/bin/tazlitobox Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,445 @@ +#!/bin/sh +# +# Gtkdialog box for Tazlito - SliTaz Live Tool. +# Tabs are used for ident ans all action should go into functions to +# separate GUI and commands. +# +# (C) GNU gpl v3 - SliTaz GNU/Linux 2010. +# +VERSION=2.2 + +export BIN=$0 + +# Check if user is root. +check_root() +{ + if test $(id -u) != 0 ; then + echo -e " +You must be root to run `basename $0`. Please type 'su' and +root password to become super-user.\n" + exit 0 + fi +} + +# We need to parse flavors.list for GTK tree. +list_flavors() +{ + tazlito list-flavors | grep ^[a-z] | while read line + do + info=`echo -n $line | awk '{print $1 " " $2 " " $3}'` + printinfo=`echo -n $line | awk '{print $1 "|" $2 "|" $3}'` + echo "$printinfo|`echo $line | sed s/\"$info\"//`" + done +} + +recharge_list() +{ + xterm -geometry 90x14 \ + -title "list-flavors --recharge" \ + -e "tazlito list-flavors --recharge | grep ^[a-z] && sleep 2" +} + +# When using gen-liveflavor, gen-flavor or gen-distro, user can put some +# addfiles copied into the rootfs. +addfiles_action() +{ + cd /home/slitaz + mkdir -p distro/addfiles/rootfs/usr/share/images + mkdir -p distro/addfiles/rootcd + file-manager distro/addfiles & +} + +writeiso_action() +{ + xterm -geometry 80x16 \ + -title "writeiso" \ + -e "tazlito writeiso $COMPRESSION" +} + +gen_liveflavor_action() +{ + cd /home/slitaz + sed -i "s/ISO_NAME=.*/ISO_NAME=\"slitaz-$GEN_LIVEFLAVOR_NAME\"/" \ + /etc/tazlito/tazlito.conf + xterm -geometry 80x16 \ + -title "gen-liveflavor" \ + -e "tazlito gen-liveflavor $GEN_LIVEFLAVOR_NAME && echo -e \"----\nENTER to continue...\" && read close" +} + +clean_distro_action() +{ + cd /home/slitaz + xterm -geometry 80x16 \ + -title "clean-distro" \ + -e "tazlito clean-distro && sleep 1" +} + +get_flavor_action() +{ + cd /home/slitaz + xterm -geometry 80x16 \ + -title "get-flavor $COMMUNITY_FLAVOR" \ + -e "tazlito get-flavor $COMMUNITY_FLAVOR && echo -e \"----\nENTER to continue...\" && read close" +} + +gen_distro_action() +{ + cd /home/slitaz + xterm -geometry 80x16 \ + -title "gen-distro" \ + -e "tazlito gen-distro && echo -e \"----\nENTER to continue...\" && read close" +} + +gen_flavor_action() +{ + cd /home/slitaz + xterm -geometry 80x16 \ + -title "gen-flavor $GEN_FLAVOR_NAME" \ + -e "tazlito gen-flavor $GEN_FLAVOR_NAME && echo -e \"----\nENTER to continue...\" && read close" +} + +edit_distro_script() +{ + [ ! -f $DISTRO_SCRIPT ] && echo "#!/bin/sh" > $DISTRO_SCRIPT + chmod +x $DISTRO_SCRIPT + editor $DISTRO_SCRIPT +} + +# Boxes + +export HELP=' + + + + + + + + + + + + + + + + + + + + + + + + +' + +# List all flavors on the mirror. +export LIST_FLAVORS_BOX=' + + + + 500200 + COMMUNITY_FLAVOR + + $BIN list_flavors + + + + + + +' + +# Execute tazlito commands in a XTerm. Notebook: tab-pos="GTK_POS_LEFT" +export TAZLITO_BOX=' + + + + + + + + + /usr/share/pixmaps/tazlito.png + + + + + + + + + + + + + + + + + gzip + COMPRESSION + + + + + + + + + + + + + + + + + + + + + slitaz + GEN_LIVEFLAVOR_NAME + + + + + + + + + + + + + + + + + + + + + + + core + COMMUNITY_FLAVOR + + + + + + + + + + + + + + + + + + + + + + + + slitaz + GEN_FLAVOR_NAME + + + + + + + + + + + + + + + + + + + + + + /home/slitaz/tazlito.conf + CONFIG_FILE + + + + + + + + + + /home/slitaz/distro-packages.list + PKGS_LIST + + + + + + + + + + /home/slitaz/distro.sh + DISTRO_SCRIPT + + + + + + + + + + + + + + + +' + +case $1 in + *_*) + # Exec all function called by args (must have an underscore). + $1 ;; + *) + # Tazlitobox action. + check_root + gtkdialog --center --program=TAZLITO_BOX ;; +esac + +exit 0 diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/bin/wifibox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/bin/wifibox Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,634 @@ +#!/bin/sh +# +# GTKdialog interface to manage wireless connections in a simple way. +# Use tabs to indent, split commands from the GUI and use functions. +# Favorite networks are also supported +# +# (c) 2010 SliTaz GNU/Linux - GNU gpl v3 +# +VERSION=20100118 + +# Export script path and others if needed so we can use them in 'quote'. +export BIN=$0 +export FAVORITES_WIFI=/etc/wireless +. /etc/network.conf + +# Wifibox is only for root. +if test $(id -u) != 0 ; then + exec subox wifibox + exit 0 +fi + +# Sanity check +[ -x /usr/sbin/iwconfig ] || tazpkg get-install wireless_tools +[ -d $FAVORITES_WIFI ] || mkdir -p $FAVORITES_WIFI +rm -f $FAVORITES_WIFI/any.conf + +# Catch ESSIDs and format output for GTK tree. We get the list of +# networks by Cell and without spaces. +detect_wifi_networks() +{ + desktopbox notify "Scanning Wireless interface: $WIFI_INTERFACE" & + if [ -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then + ifconfig $WIFI_INTERFACE up + for i in `iwlist $WIFI_INTERFACE scan | sed s/"Cell "/Cell-/ | grep "Cell-" | awk '{print $1}'` + do + SCAN=`iwlist $WIFI_INTERFACE scan last | \ + awk '/(Cell|ESS|Qual|Encry|IE: WPA)/ {print}' | \ + sed s/"Cell "/Cell-/ | grep -A 5 "$i"` + ESSID=`echo $SCAN | cut -d '"' -f 2` + if echo "$SCAN" | grep -q Quality; then + QUALITY=`echo $SCAN | sed 's/.*Quality=\([^ ]*\).*/\1/' | sed 's/.*Quality:\([^ ]*\).*/\1/'` + else + QUALITY="-" + fi + ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'` + # Check encryption type + if echo "$SCAN" | grep -q WPA; then + ENCRYPTION="${ENCRYPTION} (WPA)" + fi + # Connected or not connected... + if ifconfig | grep -A 1 $WIFI_INTERFACE | \ + grep -q inet && iwconfig $WIFI_INTERFACE | \ + grep ESSID | grep -q -w "$ESSID"; then + STATUS=connected + else + STATUS="-" + fi + echo -n "" + echo "$ESSID | $QUALITY | $ENCRYPTION | $STATUS" + done + fi +} + +# cmdline functions + +# Toggle Software RF Switch on some laptops +set_rfswitch() +{ + for i in /proc/driver/acerhk/wirelessled /proc/acpi/asus/wled ; do + [ -e $i ] && echo $1 > $i + done +} + +# Configure /etc/network.conf and restart connection with init script. +start_wifi_connection() +{ + # Get tmp config created by connect_to_essid() if exists and set + # empty value to clean config file. + if [ -f /tmp/wifi.conf ]; then + . /tmp/wifi.conf + WIFI_MODE="" + WIFI_IWCONFIG_ARGS="" + WIFI_CHANNEL="" + fi + sed -i "s/`grep ^WIFI= /etc/network.conf`/WIFI=\"yes\"/" \ + /etc/network.conf + sed -i "s/`grep ^WIFI_INTERFACE= /etc/network.conf`/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" \ + /etc/network.conf + sed -i "s/`grep ^WIFI_ESSID= /etc/network.conf`/WIFI_ESSID=\"$WIFI_ESSID\"/" \ + /etc/network.conf + sed -i "s/`grep ^WIFI_KEY= /etc/network.conf`/WIFI_KEY=\"$WIFI_KEY\"/" \ + /etc/network.conf + sed -i "s/`grep ^WIFI_MODE= /etc/network.conf`/WIFI_MODE=\"$WIFI_MODE\"/" \ + /etc/network.conf + sed -i "s/`grep ^WIFI_IWCONFIG_ARGS= /etc/network.conf`/WIFI_IWCONFIG_ARGS=\"$WIFI_IWCONFIG_ARGS\"/" \ + /etc/network.conf + sed -i "s/`grep ^WIFI_KEY_TYPE= /etc/network.conf`/WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"/" \ + /etc/network.conf + sed -i "s/`grep ^WIFI_CHANNEL= /etc/network.conf`/WIFI_CHANNEL=\"$WIFI_CHANNEL\"/" \ + /etc/network.conf + [ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid` + ifconfig $WIFI_INTERFACE down + set_rfswitch 1 + iwconfig $WIFI_INTERFACE txpower auto + /etc/init.d/network.sh restart + # Remove tmp file (could be used to have wireless profiles) + rm -f /tmp/wifi.conf + sleep 2 +} + +# We must sleep 4 sec to refresh networks list. +stop_wifi_connexion() +{ + sed -i s/`grep ^WIFI= /etc/network.conf`/WIFI=\"no\"/ \ + /etc/network.conf + [ -x /etc/init.d/wpa_supplicant ] && /etc/init.d/wpa_supplicant stop + ifconfig $WIFI_INTERFACE down + iwconfig $WIFI_INTERFACE txpower off + set_rfswitch 0 + [ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid` + sleep 2 +} + +# Favorite wireless networks use only 3 values: essid. key and type of +# key +favorites_wifi_list() +{ + for i in $FAVORITES_WIFI/*.conf + do + WIFI_ESSID="" + WIFI_KEY="" + WIFI_KEY_TYPE="" + . "$i" + [ -z "$WIFI_ESSID" ] && WIFI_ESSID="Bad config file: $i" + [ -z "$WIFI_KEY_TYPE" ] && WIFI_KEY_TYPE="-" + if [ -n "$WIFI_KEY" ]; then + WIFI_KEY="********" + else + WIFI_KEY="-" + fi + echo "$WIFI_ESSID | $WIFI_KEY_TYPE | $WIFI_KEY" + done +} + +favorite_wifi_actions() +{ + cp -a $FAVORITES_WIFI/"$FAVORITE".conf /tmp/wifi.conf + . /tmp/wifi.conf + export CONNECT_FAVORITE=" + + + + + + + + + + + + + + + +" + gtkdialog --center --program=CONNECT_FAVORITE >/dev/null +} + +add_favorite_network_box() +{ + ADD_FAVORITE=' + + + + + + + + + + + WIFI_ESSID + + + + + + + + WIFI_KEY + + + + + + + ' + tmp="${ADD_FAVORITE}$WIFI_KEY_TYPE" + for i in none WEP WPA any; do + tmp=${tmp}"$i" + done + export ADD_FAVORITE=${tmp}' + WIFI_KEY_TYPE + + + + + + + +' + gtkdialog --center --program=ADD_FAVORITE #>/dev/null +} + +# GUI functions + +helpbutton() +{ + local label; + label="" + [ -n "$3" ] || label="" + cat << EOT + +EOT +} + +manbutton() +{ + cat << EOT + +EOT +} + +# Independant dialog to connect on a wireless network. If encryption +# is on we ask for the security key. +connect_to_essid() +{ + SCAN=`iwlist $WIFI_INTERFACE scan | \ + awk '/(Cell|ESS|Qual|Encry|IE: WPA)/ {print}' | \ + grep -B 1 -A 1 "$ESSID_LIST"` + WIFI_ESSID="$ESSID_LIST" + ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'` + # Create tmp file used by active_wifi_connexion() + cat > /tmp/wifi.conf << _EOF_ +# Wireless connexion configuration file. +WIFI_ESSID="$ESSID_LIST" +_EOF_ + CONNECT_ESSID=" + + + + + " + # We maybe need a key to connect + if [ "$ENCRYPTION" = "on" ] && [ "$ESSID_LIST" != "any" ]; then + # WPA + if echo "$SCAN" | grep -q WPA; then + echo 'WIFI_KEY_TYPE="WPA"' >> /tmp/wifi.conf + CONNECT_ESSID=${CONNECT_ESSID}' + + + + + + . /etc/network.conf; echo "$WIFI_KEY" + WIFI_KEY + + ' + else + # WEP + echo 'WIFI_KEY_TYPE="WEP"' >> /tmp/wifi.conf + CONNECT_ESSID=${CONNECT_ESSID}' + + + + + + . /etc/network.conf; echo "$WIFI_KEY" + WIFI_KEY + + ' + fi + else + # No encryption + echo 'WIFI_KEY=""' >> /tmp/wifi.conf + echo 'WIFI_KEY_TYPE=""' >> /tmp/wifi.conf + start_wifi_connection + exit 0 + fi + # Add key to config file so active_wifi_connexion() can use it. + # WIFI_KEY is not exported if we quote with --> " + export CONNECT_ESSID=${CONNECT_ESSID}' + + + + + +' + gtkdialog --center --program=CONNECT_ESSID #>/dev/null +} + +# Wifibox start with Networks tab. +box() +{ + WIFI_DIALOG=" + + + + + + + + 520160 + ESSID_LIST + + $0 detect_wifi_networks + any | * | off | (auto-connect) + $0 connect_to_essid + refresh:ESSID_LIST + refresh:WIFI_ESSID + refresh:WIFI_KEY + refresh:WIFI_KEY_TYPE + + + + + + + + " + + # Favorite networks + WIFI_DIALOG=${WIFI_DIALOG}" + + + 500160 + FAVORITE + + $0 favorites_wifi_list + any | - | - + $0 favorite_wifi_actions + refresh:FAVORITE + refresh:ESSID_LIST + refresh:WIFI_ESSID + refresh:WIFI_KEY + refresh:WIFI_KEY_TYPE + + + + + + + + " + + # Configuration tab + WIFI_DIALOG=${WIFI_DIALOG}' + + + + + + + + . /etc/network.conf; echo "$WIFI_INTERFACE" + WIFI_INTERFACE + + + + + + + + . /etc/network.conf; echo "$WIFI_ESSID" + WIFI_ESSID + + + + + + + + . /etc/network.conf; echo "$WIFI_KEY" + WIFI_KEY + + ' + tmp2="${WIFI_DIALOG}$WIFI_KEY_TYPE" + for i in none WEP WPA any; do + [ "$i" = "$WIFI_KEY_TYPE" ] || tmp2="$tmp2$i" + done + tmp3=' WIFI_KEY_TYPE + + + + + + + + + + . /etc/network.conf; echo "$WIFI_CHANNEL" + WIFI_CHANNEL + + + + WIFI_MODE' + tmp2="$tmp2$tmp3$WIFI_MODE" + for i in managed ad-hoc master repeater secondary monitor; do + [ "$i" = "$WIFI_MODE" ] || tmp2="$tmp2$i" + done + tmp3=' + + + + + + + . /etc/network.conf; echo "$WIFI_IWCONFIG_ARGS" + WIFI_IWCONFIG_ARGS + ' + WIFI_DIALOG="$tmp$tmp2$tmp3 + $(helpbutton iwconfig 80x24) + $(manbutton 8 iwconfig) + + " + + # Start Button for manual configuration. + WIFI_DIALOG=${WIFI_DIALOG}' + + + + ' + + # Kernel Modules, firmware and tazndisbox note + button. + WIFI_DIALOG=${WIFI_DIALOG}" + + + + + + + + + + + " + # Display firmware stuff, tazndisbox button if installed and close + # tab + notebook + if [ -x /usr/bin/tazndisbox ]; then + WIFI_DIALOG=${WIFI_DIALOG}" + " + fi + WIFI_DIALOG=${WIFI_DIALOG}" + + + + + + + MODULE" + WIFI_DIALOG="${WIFI_DIALOG}$(find /lib/modules/$(uname -r)/kernel/drivers/net/wireless -type f 2> /dev/null | sed 's,/.*/\(.*\).ko.*,\1,')" + WIFI_DIALOG=${WIFI_DIALOG}' + + + + + ' + # Firmware stuff. + tmp=$(for i in /usr/bin/get*firmware; do + [ -x $i ] || continue + [ "$i" = "/usr/bin/get-wifi-firmware" ] && continue + [ -d /var/lib/tazpkg/installed/${i#/usr/bin/get-} ] && continue + echo "${i#/usr/bin/get-}"; done) + [ -n "$tmp" ] && tmp=" + + + + + FIRMWARE$tmp + + + " + +# Bottom buttons +export WIFI_DIALOG=${WIFI_DIALOG}${tmp}" + + + + + + + + +" + gtkdialog --center --program=WIFI_DIALOG #>/dev/null 2>&1 +} + +if [ -n "$1" ]; then + $1 +else + box +fi + +exit 0 diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/applications/burnbox-doc.desktop --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/applications/burnbox-doc.desktop Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,8 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Burnbox manual +Name[pt]=Manual do Burnbox +Exec=browser file:///usr/share/doc/slitaz-tools/burnbox.html +Icon=text-html +Type=Application +Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/applications/gpl-license.desktop --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/applications/gpl-license.desktop Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,8 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=GNU General Public License +Name[pt]=Licença PuÌblica Geral GNU +Exec=browser file:///usr/share/licenses/gpl.txt +Icon=text-x-generic +Type=Application +Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/applications/system-doc.desktop --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/applications/system-doc.desktop Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=System Doc +Name[fr]=Doc du système +Name[pt]=Documentação do Sistema +Exec=browser file:///usr/share/doc/slitaz/index.html +Icon=slitaz-doc.png +Type=Application +Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/applications/tazlito-doc.desktop --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/applications/tazlito-doc.desktop Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Tazlito manual +Name[fr]=Manuel de Tazlito +Comment=SliTaz LiveCD generator and editor +Comment[fr]=Manuel de l'outil de geÌneÌration et eÌdition de LiveCD +Exec=browser file:///usr/share/doc/tazlito/tazlito.html +Icon=text-html +Type=Application +Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/applications/tazlitobox.desktop --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/applications/tazlitobox.desktop Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,8 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Create a LiveCD +Name[fr]=Créer un LiveCD +Exec=subox tazlitobox +Icon=tazlito +Type=Application +Categories=System; diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/applications/tazpkg-doc.desktop --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/applications/tazpkg-doc.desktop Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Tazpkg manual +Name[fr]=Manuel de Tazpkg +Comment=SliTaz packages manager manual +Comment[fr]=Manuel du gestionnaire de paquets SliTaz +Exec=browser file:///usr/share/doc/tazpkg/tazpkg.html +Icon=text-html +Type=Application +Categories=Documentation; diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/doc/slitaz/book.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/doc/slitaz/book.css Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,195 @@ +/* + CSS style for SliTaz GNU/Linux *book. + Pankso 2007 - www.slitaz.org +*/ + +html { + height: 102%; +} + +body { + font: 13px sans-serif, vernada, arial; + background: #ffffff; + color: black; + margin: 0; +} + +#header { + background: #f0ba08 url(images/css/header.png) repeat-x top; + color: black; + height: 50px; + border-top: 1px solid black; + border-bottom: 1px solid black; +} + +#header h1 { + padding: 10px; +} + +#quicknav { + text-align: right; + font-size: 12px; + color: #666666; + background-color: #eaeaea; + padding: 4px 2px; + font-weight: bold; +} + +#quicknav a { + color: #0F314E; + background: inherit; + text-decoration: none; + padding: 0px 2px; +} + +#quicknav a:hover { + color: #DF8F06; + text-decoration: none; +} + +/* content. */ + +#content { + padding: 20px; + margin: 0px 50px 0px 50px; + width: auto; + text-align: justify; +} + +#content li { + line-height: 1.5em; + text-align: left; +} + +/* Footer. */ + +#footer { + font-size: 11px; + color: black; + height: 20px; + padding: 0px 0px 0px 10px; + margin: 0px; + width: auto; + text-align: center ; +} + +#footer a { + background: #ffffff; + color: #0F314E; +} + +#footer a:hover { + background: #ffffff; + color: blue; +} + +/* Legal informations */ + +#copy { + font-size: 11px ; + text-align: center ; + background: transparent; + color: #a8a8a8; + padding-top: 10px; +} + +#copy a { + background: inherit; + color: #a8a8a8; +} + +#copy a:hover { + background: inherit; + color: blue; +} + +/* Clouds */ + +#cloud { + padding: 10px 120px 10px 120px; + line-height: 3em; + text-align: center; +} +#cloud a { padding: 4px; color: #956411; } +#cloud a.tag1 { font-size: 0.7em; font-weight: 100; } +#cloud a.tag2 { font-size: 0.8em; font-weight: 200; } +#cloud a.tag3 { font-size: 0.9em; font-weight: 300; } +#cloud a.tag4 { font-size: 1.0em; font-weight: 400; } +#cloud a.tag5 { font-size: 1.2em; font-weight: 500; } +#cloud a.tag6 { font-size: 1.4em; font-weight: 600; } +#cloud a.tag7 { font-size: 1.6em; font-weight: 700; } +#cloud a.tag8 { font-size: 1.8em; font-weight: 800; } +#cloud a.tag9 { font-size: 2.2em; font-weight: 900; } +#cloud a.tag10 { font-size: 2.5em; font-weight: 900; } + +/* Div for round corners. */ + +.content-right, .footer-right { + width: 16px; + color: white; + background-color: #333333; +} +.content-right { + background: url(images/css/content-tr.png) no-repeat top right; + height: 16px; + right: 50px; + top: 82px; + position: absolute; +} + +.footer-right { + background: url(images/css/footer-br.png) no-repeat bottom right; + height: 20px; + float: right; +} + +/* General HTML entities for content. */ + +h1 { + margin: 0px 0px 0px 16px; +} + +h2 { + margin: 12px 0; + color: #484B7C; + background: white; +} + +h3 { + font-weight: bold; + color: #6c0023; + background: white; +} + +a { + text-decoration: underline; +} +a:hover { + text-decoration: none; +} + +pre { + padding: 5px; + color: black; + background: #e1e0b0; +} +pre.script { + padding: 10px; + color: black; + background: #e8e8e8; + border: 1px inset #333333; +} + +code { + font-size: 12px; + color: #669900; + background: transparent; +} + +li { + line-height: 1.4em; +} + +hr { + border: 0pt none; +} diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/doc/slitaz/favicon.ico Binary file xfce/rootfs/usr/share/doc/slitaz/favicon.ico has changed diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/doc/slitaz/images/css/header.png Binary file xfce/rootfs/usr/share/doc/slitaz/images/css/header.png has changed diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/doc/slitaz/index.de.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/doc/slitaz/index.de.html Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,67 @@ + + + + SliTaz - System doc (de) + + + + + + + + + + + + + + +
+ SliTaz: + Website + Forum + Wiki + Labs +
+ + +
+ +

Documentation (de)

+ +

+SliTaz GNU/Linux stable Release wird mit den Dokumentationen für die +SliTaz-Werkzeuge und den deutschen Release Notes veröffentlicht. Dokumentation +und diese Seite sind über das Openboxenü erreichbar. Bitte konsultieren Sie +ebenfalls die Deutsche Projektseite +für allgemeine Informationen über SliTaz. Für die Benutzung des Systems lesen +Sie bitte das deutsche Handbuch. das Teil des +SliTaz Wiki ist. +

+ + +
+ + + + +
+ Copyright © 2010 SliTaz - + GNU General Public License;
+ Documentation uder + GNU Free Documentation License + and valid xHTML 1.0. +
+ + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/doc/slitaz/index.en.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/doc/slitaz/index.en.html Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,176 @@ + + + + SliTaz - System doc + + + + + + + + + + + + + + +
+ SliTaz: + Website + Forum + Wiki + Labs +
+ + +
+ +

Documentation (en)

+ +

+The Cooking version doesn't provide any Release Notes, major changes are announced +on the web site and the Labs provide +fresh news about the project's activity. Like the stable version, you will +find documentation on the web +site and support on the community forum. +

+ + + +

Getting started

+ + +

Network connections

+

+Click on the "Network Status Monitor" at the bottom right of the screen, +"Configure" and then the network manager (netbox) will come up. You can +go to the "DHCP" tab and click "Start", and Slitaz will send a DHCP request +to the local router. You may also setup a static IP, PPPoE, PPP, VPN and +more using their respective tabs. To configure a wireless connection you +can use SliTaz wifibox by clicking "Wireless Manager" in the Network Manager +or by using the "System Tools" menu entry -> "Wireless networks connections". +

+

+More detailed information can be found in the Handbook: +Network configuration +

+ + +

Applications

+

+To have a list of all graphical applications you can use the SliTaz menu button +at the bottom left of the screen. To have a list of command line tools, you +can open a terminal and double press on the tabulation button. And to have +a list of all installed packages you can use the package manager user interface +using the panel icon or from the "System Tools" menu. To install any new packages +you must have a network connection, the DVD of packages or an USB storage device +with downloaded packages from another machine. Naturally any package management +can also be done from the command line and tazpkg. +

+ + +

Office suite

+

+The SliTaz packages database provides some lightweight office applications. +All of these packages are easily installable in a few clicks through the packages +manager. SliTaz also provides a simple way to install the famous and powerful +OpenOffice suite: just search OpenOffice in the packages manager, double click +on "get-OpenOffice3" and install the script with the Auto exec option +enabled. +

+

+To have a lightweight office suite; use: Abiword as Word processor, Gnumeric as +Spreadsheet and Homebank for Bank Accounting. +

+ + +

Multimedia

+

+Most SliTaz flavors include a wide range of sound card drivers, a volume +mixer and a light audio player to easily listen to any MP3 or OGG files. The Sound +card is autodetected at boot time and audio support works out-of-the-box +on many systems. If you manually add a new user and can't listen to audio, please +check that the user belongs to the audio group. For any other trouble please +look into the full documentation and use the forum for more help. +

+

+Videos can be watched by installing one single package or using a dedicated +LiveCD or LiveUSB system. The SliTaz team have packaged some of the best video players +available under GNU/Linux: mplayer, xine-ui and vlc +

+ + +

System information

+

+You can get information on your system by clicking on "System information" +in the System Tools menu, then "Summary". Clicking on the other +options on the side brings you more information, and using the benchmarks +gives you an idea on how fast your computer is. To have a list and control +of all your current processes you can use the "Task Manager". +

+ + +

Becoming Root

+

+By default, Slitaz doesn't have its desktop running as root administrator: +it asks for a root password (default root) for any dangerous work. +Therefore, it is safer and more secure. To become root in an xterm, simply +type su, and enter the root password. +

+ + +

Installation

+

+SliTaz can be installed to a hard disk or on an USB mass storage device using the +"SliTaz Installer" from the "System Tools" menu. The installer makes a full HD install. +SliTaz won't work in memory (RAM) anymore like in Live or Frugal mode and +everything is persistent. +

+

+To generate a LiveUSB system you can use "Tazusb LiveUSB Tool" from the "System Tools" +menu or tazusb from the command line. More information can be found in the SliTaz +Handbook: LiveUSB media +

+ + +
+ + + + +
+ Copyright © 2010 SliTaz - + GNU General Public License;
+ Documentation uder + GNU Free Documentation License + and valid xHTML 1.0. +
+ + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/doc/slitaz/index.fr.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/doc/slitaz/index.fr.html Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,78 @@ + + + + SliTaz - System doc (fr) + + + + + + + + + + + + + + +
+ SliTaz: + Website + Forum + Wiki + Labs +
+ + +
+ +

Documentation (fr)

+ +

+La version en cuisson ou Cooking ne fourni pas de notes de +publication, les chagements sont annonçés sur le site web et +les laboratoires proposent des +nouvelles fraîches. Comme pour la version stable, vous pouvez vous +référer à la documentation du site et trouverez de l'aide sur +le forum du projet. +

+ + + + +
+ + + + +
+ Copyright © 2010 SliTaz - + GNU General Public License;
+ Documentation uder + GNU Free Documentation License + and valid xHTML 1.0. +
+ + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/doc/slitaz/index.hu.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/doc/slitaz/index.hu.html Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,85 @@ + + + + SliTaz - System doc (hu) + + + + + + + + + + + + + +
+ SliTaz: + Website + Forum + Wiki + Labs +
+ + +
+ +

Documentation (hu)

+ +

Megjegyzés a kiadáshoz
+

+

A SliTaz GNU/Linux stabil kiadása a rendszerre +telepített projekt-eszközökkel, +leírásokkal és Kiadási +tájékoztatóval jelent meg. A +leírások és ez az oldal az Openbox menün +keresztül érhetők el. A Slitazzal kapcsolatos +általános információkért +kérjük látogassa meg a projekt oldalt . A rendszer +beállításához és +használatához olvassa el a  Kézikönyvet. +A közösségről a +SliTaz Wiki  oldalon +talál dokomentumokat. Támogatást a Slitaz +közösségi Fórumon +keresztül kaphat.

+

A Cooking verzióhoz nincs tájékoztató, a +változtatásokat közzétesszük a honlapon, +és a Labs +szolgáltat új információkat a projektbeli +tevékenységekről. Csakúgy, mint a stabil +verzióhoz, ehhez is található +dokumentáció és támogatás a +közösségi fórumban. +

+ + +
+ + + + +
+ Copyright © 2010 SliTaz - + GNU General Public License;
+ Documentation uder + GNU Free Documentation License + and valid xHTML 1.0. +
+ + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/doc/slitaz/index.pt.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/doc/slitaz/index.pt.html Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,66 @@ + + + + SliTaz - Documentação do Sistema + + + + + + + + + + + + + + +
+ SliTaz: + Website + Forum + Wiki + Labs +
+ + +
+ +

Documentação (pt)

+ +

+A versão de testes (cooking) do SliTaz não fornece notas de lançamento, +qualquer mudança para esta versão é anunciada no website e o +SliTaz Labs traz as últimas notícias +e atividades do projeto. Assim como na versão estável, você irá obter +informações sobre a versão de testes no website e suporte no +fórum do projeto. +

+ + +
+ + + + +
+ Copyright © 2010 SliTaz - + GNU General Public License;
+ Documentation uder + GNU Free Documentation License + and valid xHTML 1.0. +
+ + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/doc/slitaz/template.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/doc/slitaz/template.html Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,62 @@ + + + + SliTaz - System doc + + + + + + + + + + + + + + +
+ SliTaz: + Website + Forum + Wiki + Labs +
+ + +
+
+ +

Template

+ +

+CONTENT +

+ + +
+ + + + +
+ Copyright © 2010 SliTaz - + GNU General Public License;
+ Documentation uder + GNU Free Documentation License + and valid xHTML 1.0. +
+ + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/images/slitaz-background.jpg Binary file xfce/rootfs/usr/share/images/slitaz-background.jpg has changed diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/pixmaps/slitaz-menu.png Binary file xfce/rootfs/usr/share/pixmaps/slitaz-menu.png has changed diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/slim/themes/slitaz/background.png Binary file xfce/rootfs/usr/share/slim/themes/slitaz/background.png has changed diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/slim/themes/slitaz/panel.png Binary file xfce/rootfs/usr/share/slim/themes/slitaz/panel.png has changed diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/slim/themes/slitaz/slim.theme --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/slim/themes/slitaz/slim.theme Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,37 @@ +# SliTaz theme for SLiM +# + +# Messages +msg_color #000000 +msg_font Vera:size=18:bold:dpi=75 +msg_x 50% +msg_y 35% +msg_shadow_color #FFFFFF +msg_shadow_xoffset 1 +msg_shadow_yoffset 1 + +# valid values: stretch, tile +background_style tile +background_color #1e0a0c + +# Input controls +input_panel_x 50% +input_panel_y 50% +input_name_x 64 +input_name_y 179 +input_font Vera:size=11:dpi=75 +input_fgcolor #000000 + +# Username / password request +username_font Vera:size=18:bold:dpi=75 +username_color #eeede9 +username_x 50% +username_y 140 +password_x 50% +password_y 140 +username_shadow_color #000000 +username_shadow_xoffset 1 +username_shadow_yoffset 1 + +username_msg Username: +password_msg Password: diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/webhome/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/webhome/index.html Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,68 @@ + + + + SliTaz - Web Homepage + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
Wikipedia : +
+ + + +
+
Google : +
+ + +
+
+
+ + +
+ SliTaz : + Website | + Documentation | + Forum | + Labs | + Packages +
+ +
+slitaz-tux +
+ + +
+ + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/webhome/netsurf.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/webhome/netsurf.html Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,66 @@ + + + + SliTaz - Web Homepage + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
[ Wikipedia ] +
+ + + +
+
[ Google ] +
+ + +
+
+
+ + +
+ SliTaz : + Website | + Documentation | + Forum | + Packages | + Labs +
+
+ NetSurf : + Website | + Documentation +
+ + +
+ + + diff -r 628eb741f4e9 -r 601544e5561e xfce/rootfs/usr/share/webhome/style.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xfce/rootfs/usr/share/webhome/style.css Wed Feb 22 23:26:35 2012 +0100 @@ -0,0 +1,113 @@ +/* + CSS style for SliTaz GNU/Linux local home page + www.slitaz.org - (c) 2008 SliTaz Community +*/ + +body { + background: white; + color: black; + font: 13px sans-serif, vernada, arial; + margin: 0 0 0 0; + padding-bottom: 100%; +} + +#header { + background: #f0ba08 url(pics/header.png) repeat-x top; + color: black; + width: 100%; + height: 50px ; + border-top: 1px solid black; + border-bottom: 1px solid black; + /* margin-bottom: 30px; */ +} + +#header h1 { + padding: 10px; + text-align: center; +} + +/* Page content */ + + +#content { + height: auto; + margin: 10px 100px 0px 100px; + padding: 0px 72px 0px 72px; +} + +#content li { + line-height: 1.5em; + text-align: left; +} + +/* Footer */ + +#bottom { + float: none; + background: inherit; + color: black; + width: auto; + clear: both; + padding: 0; + margin: 0; + text-align: center; + vertical-align: middle; +} + +/* CSS class. */ + + +/* HTML styles */ + +h1 { + margin: 0px 0px 0px 16px; +} + +h2 { + color: #DF8F06; + border-left: 10px solid #F3F3F3; + padding: 4px 0px 4px 4px; + margin: 0; +} + +h3 { + font-weight: bold; + color: #6c0023; + background: inherit; +} + +a { + text-decoration: underline; + color: #0F314E; + background: inherit; +} + +a:hover { + text-decoration: none; + color: blue; + background: inherit; +} + +img { + border: 0pt none; +} + +/* Table */ + +table { + width: variable; + margin-left: auto; + margin-right: auto; +} + +td { + width: variable; + padding: 6px; +} + +th { + width: variable; + + + text-align: right; +}