slitaz-modular rev 17

Changed mkiso.sh script be able to have profiles or flavors as slitaz calls them. Added first core flavor that has base, core-basic, core, firefox, and core-xfce flavor as modules. Will make readme to explain more.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Dec 18 17:56:17 2010 +0000 (2010-12-18)
parents 0e5731bcfb46
children 9bc0114ef156
files config core/config core/list/a.000.base.list core/list/a.001.justx.list core/list/a.002.core-basic.list core/list/a.003.core.list core/list/a.004.firefox.list core/list/a.005.core-xfce.list core/overlay/etc/filesystems core/overlay/etc/fstab core/overlay/etc/group core/overlay/etc/gshadow core/overlay/etc/init.d/bootopts.sh core/overlay/etc/passwd core/overlay/etc/shadow core/overlay/etc/slim.conf core/rootcd/README core/rootcd/images/header.png core/rootcd/index.html core/rootcd/style.css initramfs/initramfs.list list/a.001.justx.list list/a.002.core-basic.list list/a.003.mesa.list list/a.004.xorg-xf86-video.list list/a.005.firefox.list list/a.006.libs.list list/a.006.libs.removelist list/a.007.apps.list list/a.008.mercurial.list list/a.009.pentest.list list/a.010.clamav.list list/a.011.warzone2100.list list/a.012.frozen-bubble.list list/a.013.wine.list list/initramfs.list mkiso.sh overlay/etc/fstab overlay/etc/group overlay/etc/gshadow overlay/etc/passwd overlay/etc/shadow overlay/usr/bin/tazpkg
line diff
     1.1 --- a/config	Thu Dec 16 09:28:36 2010 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,20 +0,0 @@
     1.4 -
     1.5 -# names of modular package lists
     1.6 -# equals names of .list files in the order to build
     1.7 -MODULES="a.001.justx a.002.core-basic a.003.mesa a.004.xorg-xf86-video a.005.firefox a.006.libs a.007.apps a.008.mercurial a.009.pentest a.010.clamav a.011.warzone2100 a.012.frozen-bubble a.013.wine"
     1.8 -
     1.9 -# download local copies of hg repos for iso
    1.10 -# equals yes or no 
    1.11 -COPY_HG="yes"
    1.12 -
    1.13 -# update existing local copies of hg repos for iso in working folder
    1.14 -# equals yes or no
    1.15 -UPDATE_HG="yes"
    1.16 -
    1.17 -# clean modules folders by removing them
    1.18 -# equals yes or no
    1.19 -CLEAN_MODULES_DIR="no"
    1.20 -
    1.21 -# remove initramfs folder
    1.22 -# equals yes or no
    1.23 -CLEAN_INITRAMFS="no"
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/core/config	Sat Dec 18 17:56:17 2010 +0000
     2.3 @@ -0,0 +1,21 @@
     2.4 +
     2.5 +# names of modular package lists
     2.6 +# equals names of .list files in the order to build
     2.7 +#MODULES="a.001.justx a.002.core-basic a.003.mesa a.004.xorg-xf86-video a.005.firefox a.006.libs a.007.apps a.008.mercurial a.009.pentest a.010.clamav a.011.warzone2100 a.012.frozen-bubble a.013.wine"
     2.8 +MODULES="a.000.base a.001.justx a.002.core-basic a.003.core a.004.firefox a.005.core-xfce"
     2.9 +
    2.10 +# download local copies of hg repos for iso
    2.11 +# equals yes or no 
    2.12 +COPY_HG="no"
    2.13 +
    2.14 +# update existing local copies of hg repos for iso in working folder
    2.15 +# equals yes or no
    2.16 +UPDATE_HG="no"
    2.17 +
    2.18 +# clean modules folders by removing them
    2.19 +# equals yes or no
    2.20 +CLEAN_MODULES_DIR="yes"
    2.21 +
    2.22 +# remove initramfs folder
    2.23 +# equals yes or no
    2.24 +CLEAN_INITRAMFS="yes"
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/core/list/a.000.base.list	Sat Dec 18 17:56:17 2010 +0000
     3.3 @@ -0,0 +1,31 @@
     3.4 +busybox
     3.5 +bzlib
     3.6 +dialog
     3.7 +dropbear
     3.8 +e2fsprogs
     3.9 +gcc-lib-base
    3.10 +glibc-base
    3.11 +gpxe
    3.12 +grub4dos-linux
    3.13 +isapnptools
    3.14 +kbd-busybox
    3.15 +libcap
    3.16 +linux
    3.17 +lzlib
    3.18 +lzma
    3.19 +pcmciautils
    3.20 +ppp
    3.21 +rp-pppoe
    3.22 +slitaz-base-files
    3.23 +slitaz-boot-scripts
    3.24 +slitaz-tools
    3.25 +sysfsutils
    3.26 +syslinux
    3.27 +syslinux-extra
    3.28 +tazlito
    3.29 +tazpkg
    3.30 +tazusb
    3.31 +tazwok
    3.32 +udev
    3.33 +zlib
    3.34 +ncurses-common
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/core/list/a.001.justx.list	Sat Dec 18 17:56:17 2010 +0000
     4.3 @@ -0,0 +1,96 @@
     4.4 +busybox
     4.5 +bzlib
     4.6 +cairo
     4.7 +cdrkit
     4.8 +dbus
     4.9 +dbus-glib
    4.10 +dialog
    4.11 +dropbear
    4.12 +e2fsprogs
    4.13 +expat
    4.14 +fontconfig
    4.15 +freetype
    4.16 +gcc-lib-base
    4.17 +glib
    4.18 +glibc-base
    4.19 +gpxe
    4.20 +grub4dos-linux
    4.21 +hal
    4.22 +isapnptools
    4.23 +jpeg
    4.24 +kbd-busybox
    4.25 +libcap
    4.26 +libcomerr
    4.27 +libcrypto
    4.28 +libgcrypt
    4.29 +libgio
    4.30 +libpng
    4.31 +libxml2
    4.32 +linux
    4.33 +locale-de
    4.34 +locale-es
    4.35 +locale-fr
    4.36 +locale-pt
    4.37 +lzlib
    4.38 +lzma
    4.39 +nano
    4.40 +ncurses
    4.41 +openbox
    4.42 +pango
    4.43 +pciutils
    4.44 +pcmciautils
    4.45 +pcre
    4.46 +pixman
    4.47 +popt
    4.48 +ppp
    4.49 +rp-pppoe
    4.50 +slim
    4.51 +slitaz-base-files
    4.52 +slitaz-boot-scripts
    4.53 +slitaz-doc
    4.54 +slitaz-polar-cursors
    4.55 +slitaz-tools
    4.56 +sqlite
    4.57 +startup-notification
    4.58 +sysfsutils
    4.59 +syslinux
    4.60 +syslinux-extra
    4.61 +tazlito
    4.62 +tazpkg
    4.63 +tazusb
    4.64 +tazwok
    4.65 +tiff
    4.66 +ttf-dejavu
    4.67 +udev
    4.68 +xorg-base-fonts
    4.69 +xorg-libfontenc
    4.70 +xorg-libICE
    4.71 +xorg-libSM
    4.72 +xorg-libX11
    4.73 +xorg-libXau
    4.74 +xorg-libXaw
    4.75 +xorg-libXcomposite
    4.76 +xorg-libXcursor
    4.77 +xorg-libXdamage
    4.78 +xorg-libXdmcp
    4.79 +xorg-libXext
    4.80 +xorg-libXfixes
    4.81 +xorg-libXfont
    4.82 +xorg-libXft
    4.83 +xorg-libXi
    4.84 +xorg-libXinerama
    4.85 +xorg-libXmu
    4.86 +xorg-libXpm
    4.87 +xorg-libXrandr
    4.88 +xorg-libXrender
    4.89 +xorg-libXt
    4.90 +xorg-libXtst
    4.91 +xorg-rgb
    4.92 +xorg-server
    4.93 +xorg-setxkbmap
    4.94 +xorg-xauth
    4.95 +xorg-xf86-input-evdev
    4.96 +xorg-xf86-video-vesa
    4.97 +xorg-xsetroot
    4.98 +xterm
    4.99 +zlib
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/core/list/a.002.core-basic.list	Sat Dec 18 17:56:17 2010 +0000
     5.3 @@ -0,0 +1,141 @@
     5.4 +atk
     5.5 +busybox
     5.6 +bzlib
     5.7 +cairo
     5.8 +cdrkit
     5.9 +clearlooks
    5.10 +dbus
    5.11 +dbus-glib
    5.12 +dialog
    5.13 +dropbear
    5.14 +e2fsprogs
    5.15 +expat
    5.16 +fontconfig
    5.17 +freetype
    5.18 +gamin
    5.19 +gcc-lib-base
    5.20 +glib
    5.21 +glibc-base
    5.22 +gpxe
    5.23 +grub4dos-linux
    5.24 +gtk+
    5.25 +gtkdialog
    5.26 +hal
    5.27 +hardinfo
    5.28 +hicolor-icon-theme
    5.29 +isapnptools
    5.30 +jpeg
    5.31 +kbd-busybox
    5.32 +leafpad
    5.33 +libcap
    5.34 +libcomerr
    5.35 +libgio
    5.36 +libglade
    5.37 +libpng
    5.38 +libxml2
    5.39 +linux
    5.40 +locale-de
    5.41 +locale-es
    5.42 +locale-fr
    5.43 +locale-pt
    5.44 +lxappearance
    5.45 +lxpanel
    5.46 +lxtask
    5.47 +lzlib
    5.48 +lzma
    5.49 +nano
    5.50 +nanochess
    5.51 +ncurses
    5.52 +ncursesw
    5.53 +obconf
    5.54 +openbox
    5.55 +pango
    5.56 +pciutils
    5.57 +pcmanfm
    5.58 +pcmciautils
    5.59 +pcre
    5.60 +pixman
    5.61 +popt
    5.62 +ppp
    5.63 +rp-pppoe
    5.64 +shared-mime-info
    5.65 +slim
    5.66 +slitaz-base-files
    5.67 +slitaz-boot-scripts
    5.68 +slitaz-configs
    5.69 +slitaz-doc
    5.70 +slitaz-icon
    5.71 +slitaz-menus
    5.72 +slitaz-polar-cursors
    5.73 +slitaz-tools
    5.74 +slitaz-tools-boxes
    5.75 +sqlite
    5.76 +startup-notification
    5.77 +sysfsutils
    5.78 +syslinux
    5.79 +syslinux-extra
    5.80 +tazlito
    5.81 +tazpkg
    5.82 +tazusb
    5.83 +tazwikiss
    5.84 +tazwok
    5.85 +tiff
    5.86 +transset-df
    5.87 +ttf-dejavu
    5.88 +udev
    5.89 +xorg
    5.90 +xorg-base-fonts
    5.91 +xorg-libfontenc
    5.92 +xorg-libICE
    5.93 +xorg-libSM
    5.94 +xorg-libX11
    5.95 +xorg-libXau
    5.96 +xorg-libXaw
    5.97 +xorg-libXcomposite
    5.98 +xorg-libXcursor
    5.99 +xorg-libXdamage
   5.100 +xorg-libXdmcp
   5.101 +xorg-libXext
   5.102 +xorg-libXfixes
   5.103 +xorg-libXfont
   5.104 +xorg-libXft
   5.105 +xorg-libXi
   5.106 +xorg-libXinerama
   5.107 +xorg-libXmu
   5.108 +xorg-libXpm
   5.109 +xorg-libXrandr
   5.110 +xorg-libXrender
   5.111 +xorg-libXt
   5.112 +xorg-libXtst
   5.113 +xorg-rgb
   5.114 +xorg-xauth
   5.115 +xorg-xcompmgr
   5.116 +xterm
   5.117 +zlib
   5.118 +libcrypto
   5.119 +mtpaint
   5.120 +libnotify
   5.121 +transmission
   5.122 +galculator
   5.123 +ntfs-3g
   5.124 +ntfsprogs
   5.125 +web-applications
   5.126 +viewnior
   5.127 +sudoku
   5.128 +desktop-file-utils
   5.129 +xorg-server
   5.130 +xorg-xf86-input-evdev
   5.131 +xorg-xf86-video-vesa
   5.132 +xorg-setxkbmap
   5.133 +isomaster
   5.134 +gcolor2
   5.135 +lostirc
   5.136 +gparted
   5.137 +beaver
   5.138 +lua
   5.139 +epdfview
   5.140 +915resolution
   5.141 +libunique
   5.142 +libwebkit
   5.143 +midori
   5.144 +gettext-base
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/core/list/a.003.core.list	Sat Dec 18 17:56:17 2010 +0000
     6.3 @@ -0,0 +1,151 @@
     6.4 +atk
     6.5 +busybox
     6.6 +bzlib
     6.7 +cairo
     6.8 +cdrkit
     6.9 +clearlooks
    6.10 +dbus
    6.11 +dbus-glib
    6.12 +dialog
    6.13 +dropbear
    6.14 +e2fsprogs
    6.15 +expat
    6.16 +fontconfig
    6.17 +freetype
    6.18 +gamin
    6.19 +gcc-lib-base
    6.20 +get-wifi-firmware
    6.21 +glib
    6.22 +glibc-base
    6.23 +gpxe
    6.24 +grub4dos-linux
    6.25 +gtk+
    6.26 +gtkdialog
    6.27 +hal
    6.28 +hardinfo
    6.29 +hicolor-icon-theme
    6.30 +isapnptools
    6.31 +jpeg
    6.32 +kbd-busybox
    6.33 +leafpad
    6.34 +libcap
    6.35 +libcomerr
    6.36 +libgio
    6.37 +libglade
    6.38 +libpng
    6.39 +libxml2
    6.40 +linux
    6.41 +linux-wireless
    6.42 +linux-sound
    6.43 +locale-de
    6.44 +locale-es
    6.45 +locale-fr
    6.46 +locale-pt
    6.47 +lxappearance
    6.48 +lxpanel
    6.49 +lxtask
    6.50 +lzlib
    6.51 +lzma
    6.52 +nano
    6.53 +nanochess
    6.54 +ncurses
    6.55 +ncursesw
    6.56 +obconf
    6.57 +openbox
    6.58 +pango
    6.59 +pciutils
    6.60 +pcmanfm
    6.61 +pcmciautils
    6.62 +pcre
    6.63 +pixman
    6.64 +popt
    6.65 +ppp
    6.66 +rp-pppoe
    6.67 +shared-mime-info
    6.68 +slim
    6.69 +slitaz-base-files
    6.70 +slitaz-boot-scripts
    6.71 +slitaz-configs
    6.72 +slitaz-doc
    6.73 +slitaz-icon
    6.74 +slitaz-menus
    6.75 +slitaz-polar-cursors
    6.76 +slitaz-tools
    6.77 +slitaz-tools-boxes
    6.78 +sqlite
    6.79 +startup-notification
    6.80 +sysfsutils
    6.81 +syslinux
    6.82 +syslinux-extra
    6.83 +tazlito
    6.84 +tazpkg
    6.85 +tazusb
    6.86 +tazwikiss
    6.87 +tazwok
    6.88 +tiff
    6.89 +transset-df
    6.90 +ttf-dejavu
    6.91 +udev
    6.92 +xorg
    6.93 +xorg-base-fonts
    6.94 +xorg-libfontenc
    6.95 +xorg-libICE
    6.96 +xorg-libSM
    6.97 +xorg-libX11
    6.98 +xorg-libXau
    6.99 +xorg-libXaw
   6.100 +xorg-libXcomposite
   6.101 +xorg-libXcursor
   6.102 +xorg-libXdamage
   6.103 +xorg-libXdmcp
   6.104 +xorg-libXext
   6.105 +xorg-libXfixes
   6.106 +xorg-libXfont
   6.107 +xorg-libXft
   6.108 +xorg-libXi
   6.109 +xorg-libXinerama
   6.110 +xorg-libXmu
   6.111 +xorg-libXpm
   6.112 +xorg-libXrandr
   6.113 +xorg-libXrender
   6.114 +xorg-libXt
   6.115 +xorg-libXtst
   6.116 +xorg-rgb
   6.117 +xorg-xauth
   6.118 +xorg-xcompmgr
   6.119 +xterm
   6.120 +zlib
   6.121 +libcrypto
   6.122 +wireless_tools
   6.123 +wpa_supplicant
   6.124 +mtpaint
   6.125 +libnotify
   6.126 +transmission
   6.127 +alsa-lib
   6.128 +alsaplayer
   6.129 +alsa-utils
   6.130 +asunder
   6.131 +galculator
   6.132 +ntfs-3g
   6.133 +ntfsprogs
   6.134 +web-applications
   6.135 +viewnior
   6.136 +sudoku
   6.137 +desktop-file-utils
   6.138 +xorg-server
   6.139 +xorg-xf86-input-evdev
   6.140 +xorg-xf86-video-vesa
   6.141 +xorg-setxkbmap
   6.142 +mhwaveedit
   6.143 +isomaster
   6.144 +gcolor2
   6.145 +lostirc
   6.146 +gparted
   6.147 +beaver
   6.148 +lua
   6.149 +epdfview
   6.150 +915resolution
   6.151 +libunique
   6.152 +libwebkit
   6.153 +midori
   6.154 +gettext-base
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/core/list/a.004.firefox.list	Sat Dec 18 17:56:17 2010 +0000
     7.3 @@ -0,0 +1,161 @@
     7.4 +alsa-lib
     7.5 +alsaplayer
     7.6 +alsa-utils
     7.7 +atk
     7.8 +attr
     7.9 +busybox
    7.10 +bzlib
    7.11 +cairo
    7.12 +cdrkit
    7.13 +clearlooks
    7.14 +dbus
    7.15 +dbus-glib
    7.16 +desktop-file-utils
    7.17 +dialog
    7.18 +dropbear
    7.19 +e2fsprogs
    7.20 +expat
    7.21 +firefox
    7.22 +fontconfig
    7.23 +freetype
    7.24 +fuse
    7.25 +galculator
    7.26 +gamin
    7.27 +gcc-lib-base
    7.28 +get-google-earth
    7.29 +get-opera
    7.30 +get-skype
    7.31 +get-wifi-firmware
    7.32 +glib
    7.33 +glibc-base
    7.34 +gpxe
    7.35 +grub4dos-linux
    7.36 +gtk+
    7.37 +gtkdialog
    7.38 +hal
    7.39 +hardinfo
    7.40 +hicolor-icon-theme
    7.41 +isapnptools
    7.42 +jpeg
    7.43 +kbd-busybox
    7.44 +leafpad
    7.45 +libcap
    7.46 +libcomerr
    7.47 +libcrypto
    7.48 +libdrm
    7.49 +libgcrypt
    7.50 +libgio
    7.51 +libglade
    7.52 +libmad
    7.53 +libogg
    7.54 +libpng
    7.55 +libssl
    7.56 +libvorbis
    7.57 +libxcb
    7.58 +libxml2
    7.59 +linux
    7.60 +linux-acpi
    7.61 +linux-crypto
    7.62 +linux-sound
    7.63 +linux-wireless
    7.64 +locale-de
    7.65 +locale-es
    7.66 +locale-fr
    7.67 +locale-pt
    7.68 +lxappearance
    7.69 +lxpanel
    7.70 +lxtask
    7.71 +lzlib
    7.72 +lzma
    7.73 +menu-cache
    7.74 +mesa
    7.75 +nano
    7.76 +nanochess
    7.77 +ncurses
    7.78 +ntfs-3g
    7.79 +ntfsprogs
    7.80 +obconf
    7.81 +openbox
    7.82 +pango
    7.83 +pciutils
    7.84 +pcmanfm
    7.85 +pcmciautils
    7.86 +pcre
    7.87 +pixman
    7.88 +popt
    7.89 +ppp
    7.90 +rp-pppoe
    7.91 +shared-mime-info
    7.92 +slim
    7.93 +slitaz-base-files
    7.94 +slitaz-boot-scripts
    7.95 +slitaz-configs
    7.96 +slitaz-doc
    7.97 +slitaz-icon
    7.98 +slitaz-menus
    7.99 +slitaz-polar-cursors
   7.100 +slitaz-tools
   7.101 +slitaz-tools-boxes
   7.102 +sqlite
   7.103 +startup-notification
   7.104 +sudoku
   7.105 +sysfsutils
   7.106 +syslinux
   7.107 +syslinux-extra
   7.108 +tazlito
   7.109 +tazpkg
   7.110 +tazusb
   7.111 +tazwikiss
   7.112 +tazwok
   7.113 +tiff
   7.114 +transset-df
   7.115 +ttf-dejavu
   7.116 +udev
   7.117 +util-linux-ng-blkid
   7.118 +util-linux-ng-cfdisk
   7.119 +util-linux-ng-getopt
   7.120 +util-linux-ng-uuid
   7.121 +viewnior
   7.122 +web-applications
   7.123 +wireless_tools
   7.124 +wpa_supplicant
   7.125 +xcb-util
   7.126 +xorg
   7.127 +xorg-base-fonts
   7.128 +xorg-libfontenc
   7.129 +xorg-libICE
   7.130 +xorg-libpciaccess
   7.131 +xorg-libSM
   7.132 +xorg-libX11
   7.133 +xorg-libXau
   7.134 +xorg-libXaw
   7.135 +xorg-libXcomposite
   7.136 +xorg-libXcursor
   7.137 +xorg-libXdamage
   7.138 +xorg-libXdmcp
   7.139 +xorg-libXext
   7.140 +xorg-libXfixes
   7.141 +xorg-libXfont
   7.142 +xorg-libXft
   7.143 +xorg-libXi
   7.144 +xorg-libXinerama
   7.145 +xorg-libxkbfile
   7.146 +xorg-libXmu
   7.147 +xorg-libXpm
   7.148 +xorg-libXrandr
   7.149 +xorg-libXrender
   7.150 +xorg-libXt
   7.151 +xorg-libXtst
   7.152 +xorg-libXxf86vm
   7.153 +xorg-rgb
   7.154 +xorg-server
   7.155 +xorg-setxkbmap
   7.156 +xorg-xauth
   7.157 +xorg-xcompmgr
   7.158 +xorg-xf86-input-evdev
   7.159 +xorg-xf86-video-vesa
   7.160 +xorg-xkbcomp
   7.161 +xorg-xkeyboard-config
   7.162 +xorg-xrandr
   7.163 +xterm
   7.164 +zlib
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/core/list/a.005.core-xfce.list	Sat Dec 18 17:56:17 2010 +0000
     8.3 @@ -0,0 +1,250 @@
     8.4 +915resolution
     8.5 +alsa-lib
     8.6 +alsaplayer
     8.7 +alsa-utils
     8.8 +asunder
     8.9 +atk
    8.10 +attr
    8.11 +beaver
    8.12 +busybox
    8.13 +busybox-pam
    8.14 +bzlib
    8.15 +cairo
    8.16 +cairomm
    8.17 +cdparanoia-III
    8.18 +cdrkit
    8.19 +clearlooks
    8.20 +conspy
    8.21 +curl
    8.22 +dbus
    8.23 +dbus-glib
    8.24 +depmod
    8.25 +desktop-file-utils
    8.26 +dialog
    8.27 +dropbear
    8.28 +e2fsprogs
    8.29 +enchant
    8.30 +epdfview
    8.31 +expat
    8.32 +firefox
    8.33 +fontconfig
    8.34 +freetype
    8.35 +fuse
    8.36 +galculator
    8.37 +gamin
    8.38 +gcc-lib-base
    8.39 +gcolor2
    8.40 +GConf
    8.41 +gdbm
    8.42 +get-flash-plugin
    8.43 +gettext-base
    8.44 +get-wifi-firmware
    8.45 +glib
    8.46 +glibc-base
    8.47 +glibmm
    8.48 +gparted
    8.49 +gpxe
    8.50 +grub
    8.51 +gtk+
    8.52 +gtkdialog
    8.53 +gtkmm
    8.54 +gtk-xfce-engine
    8.55 +hal
    8.56 +hardinfo
    8.57 +hicolor-icon-theme
    8.58 +isapnptools
    8.59 +isomaster
    8.60 +jpeg
    8.61 +kbd-busybox
    8.62 +lcms
    8.63 +leafpad
    8.64 +libcap
    8.65 +libcddb
    8.66 +libcdio
    8.67 +libcomerr
    8.68 +libcrypto
    8.69 +libcurl
    8.70 +libdb
    8.71 +libdrm
    8.72 +libexif
    8.73 +libexo
    8.74 +libfirefox
    8.75 +libgcrypt
    8.76 +libgio
    8.77 +libgiomm
    8.78 +libglade
    8.79 +libgnutls
    8.80 +libgpg-error
    8.81 +libical
    8.82 +libIDL
    8.83 +libidn
    8.84 +libmad
    8.85 +libnotify
    8.86 +libogg
    8.87 +libpng
    8.88 +libsexy
    8.89 +libsigc++
    8.90 +libsoup
    8.91 +libssl
    8.92 +libtasn1
    8.93 +libtool
    8.94 +libunique
    8.95 +libusb
    8.96 +libusb-compat
    8.97 +libvorbis
    8.98 +libwebkit
    8.99 +libwnck
   8.100 +libxcb
   8.101 +libxfce4menu
   8.102 +libxfce4util
   8.103 +libxfcegui4
   8.104 +libxml2
   8.105 +libxslt
   8.106 +linux
   8.107 +linux-crypto
   8.108 +linux-sound
   8.109 +linux-wireless
   8.110 +locale-de
   8.111 +locale-es
   8.112 +locale-fr
   8.113 +locale-pt
   8.114 +lostirc
   8.115 +lua
   8.116 +lxappearance
   8.117 +lxpanel
   8.118 +lxtask
   8.119 +lzlib
   8.120 +lzma
   8.121 +menu-cache
   8.122 +mercurial
   8.123 +mesa
   8.124 +mhwaveedit
   8.125 +midori
   8.126 +mtpaint
   8.127 +nano
   8.128 +ncurses
   8.129 +ncurses-common
   8.130 +ncursesw
   8.131 +ntfs-3g
   8.132 +ntfsprogs
   8.133 +obconf
   8.134 +openbox
   8.135 +openssl
   8.136 +ORBit2
   8.137 +osmo
   8.138 +pam
   8.139 +pango
   8.140 +pangomm
   8.141 +parted
   8.142 +patch
   8.143 +pciutils
   8.144 +pcmanfm
   8.145 +pcmciautils
   8.146 +pcre
   8.147 +perl
   8.148 +perl-uri
   8.149 +perl-xml-parser
   8.150 +pixman
   8.151 +PolicyKit0
   8.152 +poppler
   8.153 +popt
   8.154 +ppp
   8.155 +python
   8.156 +readline
   8.157 +rp-pppoe
   8.158 +shared-mime-info
   8.159 +slim
   8.160 +slitaz-base-files
   8.161 +slitaz-boot-scripts
   8.162 +slitaz-configs
   8.163 +slitaz-doc
   8.164 +slitaz-icon
   8.165 +slitaz-menus
   8.166 +slitaz-polar-cursors
   8.167 +slitaz-tools
   8.168 +slitaz-tools-boxes
   8.169 +sqlite
   8.170 +startup-notification
   8.171 +sudo
   8.172 +sudoku-savant
   8.173 +suggested-applications
   8.174 +sysfsutils
   8.175 +syslinux
   8.176 +syslinux-extra
   8.177 +tazlito
   8.178 +tazpkg
   8.179 +tazusb
   8.180 +tazwok
   8.181 +tcl
   8.182 +thunar
   8.183 +thunar-archive-plugin
   8.184 +thunar-volman
   8.185 +tiff
   8.186 +tk
   8.187 +transmission
   8.188 +transset-df
   8.189 +ttf-dejavu
   8.190 +udev
   8.191 +util-linux-ng-blkid
   8.192 +util-linux-ng-getopt
   8.193 +util-linux-ng-uuid
   8.194 +viewnior
   8.195 +web-applications
   8.196 +wireless_tools
   8.197 +wpa_supplicant
   8.198 +xcb-util
   8.199 +xfce4
   8.200 +xfce4-icon-theme
   8.201 +xfce4-panel
   8.202 +xfce4-session
   8.203 +xfce4-settings
   8.204 +xfce4-slitaz-config
   8.205 +xfce-utils
   8.206 +xfconf
   8.207 +xfdesktop
   8.208 +xfdesktop-extras
   8.209 +xfwm4
   8.210 +xfwm4-themes
   8.211 +terminal
   8.212 +xorg
   8.213 +xorg-base-fonts
   8.214 +xorg-iceauth
   8.215 +xorg-libfontenc
   8.216 +xorg-libICE
   8.217 +xorg-libpciaccess
   8.218 +xorg-libSM
   8.219 +xorg-libX11
   8.220 +xorg-libXau
   8.221 +xorg-libXaw
   8.222 +xorg-libXcomposite
   8.223 +xorg-libXcursor
   8.224 +xorg-libXdamage
   8.225 +xorg-libXdmcp
   8.226 +xorg-libXext
   8.227 +xorg-libXfixes
   8.228 +xorg-libXfont
   8.229 +xorg-libXft
   8.230 +xorg-libXi
   8.231 +xorg-libXinerama
   8.232 +xorg-libxkbfile
   8.233 +xorg-libXmu
   8.234 +xorg-libXp
   8.235 +xorg-libXpm
   8.236 +xorg-libXrandr
   8.237 +xorg-libXrender
   8.238 +xorg-libXss
   8.239 +xorg-libXt
   8.240 +xorg-libXtst
   8.241 +xorg-libXxf86vm
   8.242 +xorg-rgb
   8.243 +xorg-server
   8.244 +xorg-setxkbmap
   8.245 +xorg-xauth
   8.246 +xorg-xcompmgr
   8.247 +xorg-xf86-input-keyboard
   8.248 +xorg-xf86-input-mouse
   8.249 +xorg-xf86-video-vesa
   8.250 +xorg-xkbcomp
   8.251 +xorg-xkeyboard-config
   8.252 +xterm
   8.253 +zlib
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/core/overlay/etc/filesystems	Sat Dec 18 17:56:17 2010 +0000
     9.3 @@ -0,0 +1,6 @@
     9.4 +ext4
     9.5 +ext3
     9.6 +ext2
     9.7 +vfat
     9.8 +ntfs-3g
     9.9 +*
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/core/overlay/etc/fstab	Sat Dec 18 17:56:17 2010 +0000
    10.3 @@ -0,0 +1,9 @@
    10.4 +# /etc/fstab: Information about static filesystems.
    10.5 +#
    10.6 +proc            /proc        proc    defaults          0       0
    10.7 +sysfs           /sys         sysfs   defaults          0       0
    10.8 +devpts          /dev/pts     devpts  defaults          0       0
    10.9 +tmpfs           /dev/shm     tmpfs   defaults          0       0
   10.10 +tmpfs           /tmp	     tmpfs   defaults          0       0
   10.11 +#/dev/hda3       /home        ext3    defaults          0       2
   10.12 +#/dev/hdb1       /mnt/data    ext3    defaults          0       2
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/core/overlay/etc/group	Sat Dec 18 17:56:17 2010 +0000
    11.3 @@ -0,0 +1,17 @@
    11.4 +root:x:0:
    11.5 +lp:x:10:
    11.6 +audio:x:20:
    11.7 +messagebus:x:25:
    11.8 +haldaemon:x:26:
    11.9 +nogroup:x:99:
   11.10 +www:x:80:
   11.11 +cdrom:x:30:
   11.12 +dialout:x:31:
   11.13 +disk:x:32:
   11.14 +floppy:x:33:
   11.15 +kmem:x:34:
   11.16 +tape:x:35:
   11.17 +tty:x:36:
   11.18 +vboxusers:x:37:
   11.19 +video:x:38:
   11.20 +clamav:x:39:
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/core/overlay/etc/gshadow	Sat Dec 18 17:56:17 2010 +0000
    12.3 @@ -0,0 +1,16 @@
    12.4 +root:*::
    12.5 +messagebus:!::
    12.6 +haldaemon:!::
    12.7 +audio:!::
    12.8 +nogroup:!::
    12.9 +www:!::
   12.10 +cdrom:!::
   12.11 +dialout:!::
   12.12 +disk:!::
   12.13 +floppy:!::
   12.14 +kmem:!::
   12.15 +tape:!::
   12.16 +tty:!::
   12.17 +vboxusers:!::
   12.18 +video:!::
   12.19 +clamav:!::
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/core/overlay/etc/init.d/bootopts.sh	Sat Dec 18 17:56:17 2010 +0000
    13.3 @@ -0,0 +1,224 @@
    13.4 +#!/bin/sh
    13.5 +# /etc/init.d/bootopts.sh - SliTaz boot options from the cmdline.
    13.6 +#
    13.7 +# Earlier boot options are in rcS, ex: config= and modprobe=
    13.8 +#
    13.9 +. /etc/init.d/rc.functions
   13.10 +
   13.11 +# Update fstab for swapon/swapoff 
   13.12 +add_swap_in_fstab()
   13.13 +{
   13.14 +	grep -q "$1	" /etc/fstab || cat >> /etc/fstab <<EOT
   13.15 +$1	swap	swap	default	0 0
   13.16 +EOT
   13.17 +}
   13.18 +
   13.19 +# Default user account without password (uid=1000). In live mode the option
   13.20 +# user=name can be used, but user must be added before home= to have home dir.
   13.21 +# This option is not handled by a loop and case like others and has no
   13.22 +# effect on an installed system.
   13.23 +if ! grep -q "100[0-9]:100[0-9]" /etc/passwd; then
   13.24 +	if grep -q "user=" /proc/cmdline; then
   13.25 +		USER=`cat /proc/cmdline | sed 's/.*user=\([^ ]*\).*/\1/'`
   13.26 +		# Avoid usage of an existing system user or root.
   13.27 +		if grep -q ^$USER /etc/passwd; then
   13.28 +			USER=tux
   13.29 +		fi
   13.30 +	else
   13.31 +		USER=tux
   13.32 +	fi
   13.33 +	echo -n "Configuring user and group: $USER..."
   13.34 +	echo "$USER:x:1000:1000:SliTaz User,,,:/home/$USER:/bin/sh" >> /etc/passwd
   13.35 +	echo "$USER::14035:0:99999:7:::" >> /etc/shadow
   13.36 +	echo "$USER:x:1000:" >> /etc/group
   13.37 +	echo "$USER:!::" >> /etc/gshadow
   13.38 +	status
   13.39 +	# Audio and cdrom group.
   13.40 +	addgroup $USER audio
   13.41 +	addgroup $USER cdrom
   13.42 +	addgroup $USER video
   13.43 +	# /home/$USER files from /etc/skel.
   13.44 +	if [ -d /etc/skel ]; then
   13.45 +		cp -a /etc/skel /home/$USER
   13.46 +		# Path for user desktop files.
   13.47 +		for i in /home/$USER/.local/share/applications/*.desktop
   13.48 +		do
   13.49 +			sed -i s/"user_name"/"$USER"/g $i
   13.50 +		done
   13.51 +	else
   13.52 +		mkdir -p /home/$USER
   13.53 +	fi
   13.54 +	# Set permissions.
   13.55 +	if [ ! $(ls -l | grep "$USER      $USER" 2>/dev/null) ]; then
   13.56 +		chown -R $USER.$USER /home/$USER
   13.57 +	fi
   13.58 +	# Slim default user.
   13.59 +	if [ -f /etc/slim.conf ]; then
   13.60 +		sed -i s/"default_user .*"/"default_user        $USER"/\
   13.61 +			/etc/slim.conf
   13.62 +	fi
   13.63 +fi
   13.64 +
   13.65 +# Parse /proc/cmdline for boot options.
   13.66 +echo "Parsing kernel cmdline for SliTaz live options... "
   13.67 +
   13.68 +for opt in `cat /proc/cmdline`
   13.69 +do
   13.70 +	case $opt in
   13.71 +		eject)
   13.72 +			# Eject cdrom.
   13.73 +			eject /dev/cdrom ;;
   13.74 +		autologin)
   13.75 +			# Autologin option to skip first graphic login prompt.
   13.76 +			echo "auto_login        yes" >> /etc/slim.conf ;;
   13.77 +		lang=*)
   13.78 +			# Check for a specified locale (lang=*).
   13.79 +			LANG=${opt#lang=}
   13.80 +			echo -n "Setting system locale to: $LANG... "
   13.81 +			echo "LANG=$LANG" > /etc/locale.conf
   13.82 +			echo "LC_ALL=$LANG" >> /etc/locale.conf
   13.83 +			[ ! -d /usr/lib/locale/$LANG ] && localedef \
   13.84 +				-i $LANG -c -f UTF-8 /usr/lib/locale/$LANG &
   13.85 +			tazlocale link-files
   13.86 +			status ;;
   13.87 +		kmap=*)
   13.88 +			# Check for a specified keymap (kmap=*).
   13.89 +			KEYMAP=${opt#kmap=}
   13.90 +			echo -n "Setting system keymap to: $KEYMAP..."
   13.91 +			echo "$KEYMAP" > /etc/keymap.conf
   13.92 +			status ;;
   13.93 +		home=*)
   13.94 +			# Check for a specified home partition (home=*) and check for 
   13.95 +			# user home dir. Note: home=usb is a shorter and easier way to
   13.96 +			# have home=/dev/sda1.
   13.97 +			DEVICE=${opt#home=}
   13.98 +			[ "$DEVICE" = "usb" ] && DEVICE=sda1
   13.99 +			echo "Home has been specified to $DEVICE..."
  13.100 +			USBDELAY=`cat /sys/module/usb_storage/parameters/delay_use`
  13.101 +			USBDELAY=$((1+$USBDELAY))
  13.102 +			echo "Sleeping $USBDELAY s to let the kernel detect the device... "
  13.103 +			sleep $USBDELAY
  13.104 +			USER=`cat /etc/passwd | grep 1000 | cut -d ":" -f 1`
  13.105 +			DEVID=$DEVICE
  13.106 +			if [ -x /sbin/blkid ]; then
  13.107 +				# Can be a label, uuid or devname. DEVID gives us first: /dev/name.
  13.108 +				DEVID=`/sbin/blkid | grep $DEVICE | cut -d: -f1`
  13.109 +				DEVID=${DEVID##*/}
  13.110 +			fi
  13.111 +			if [ -n "$DEVID" ] && grep -q "$DEVID" /proc/partitions ; then
  13.112 +				echo "Mounting /home on /dev/$DEVID... "
  13.113 +				[ -d /home/$USER ] && mv /home/$USER /tmp/$USER-files
  13.114 +				mount /dev/$DEVID /home -o uid=1000,gid=1000 2>/dev/null \
  13.115 +					|| mount /dev/$DEVID /home
  13.116 +				# Check if swap file must be generated in /home: swap=size (Mb).
  13.117 +				# This option is only used within home=device.
  13.118 +				if grep -q "swap=[1-9]*" /proc/cmdline; then
  13.119 +					SWAP_SIZE=`cat /proc/cmdline | sed 's/.*swap=\([^ ]*\).*/\1/'`
  13.120 +					# DD to gen a virtual disk.
  13.121 +					echo "Generating swap file: /home/swap ($SWAP_SIZE)..."
  13.122 +					dd if=/dev/zero of=/home/swap bs=1M count=$SWAP_SIZE
  13.123 +					# Make the Linux swap filesystem.
  13.124 +					mkswap /home/swap
  13.125 +					add_swap_in_fstab /home/swap
  13.126 +				fi
  13.127 +			else
  13.128 +				echo "Unable to find $DEVICE... "
  13.129 +			fi
  13.130 +			# Move all user dir if needed.
  13.131 +			if [ ! -d "/home/$USER" ] ; then
  13.132 +				mv /tmp/$USER-files /home/$USER
  13.133 +				chown -R $USER.$USER /home/$USER
  13.134 +			else
  13.135 +				rm -rf /tmp/$USER-files
  13.136 +			fi
  13.137 +			# Install all packages in /home/boot/packages. In live CD and 
  13.138 +			# USB mode the option home= mounts the device on /home, so we 
  13.139 +			# already have a boot directory with the Kernel and rootfs.
  13.140 +			if [ -d "/home/boot/packages" ]; then
  13.141 +				for pkg in /home/boot/packages/*.tazpkg
  13.142 +				do
  13.143 +					tazpkg install $pkg
  13.144 +				done
  13.145 +			fi ;;
  13.146 +		laptop)
  13.147 +			# Laptop option to load related Kernel modules.
  13.148 +			echo "Loading laptop modules: ac, battery, fan, yenta_socket..."
  13.149 +			for mod in ac battery fan yenta_socket
  13.150 +			do
  13.151 +				modprobe $mod
  13.152 +			done
  13.153 +			grep -qs batt /etc/lxpanel/default/panels/panel || 
  13.154 +			sed -i 's/= cpu/= batt\n}\n\nPlugin {\n    type = cpu/' \
  13.155 +				/etc/lxpanel/default/panels/panel 2> /dev/null
  13.156 +			# Enable Kernel Laptop mode.
  13.157 +			echo "5" > /proc/sys/vm/laptop_mode ;;
  13.158 +		mount)
  13.159 +			# Mount all ext3 partitions found (opt: mount).
  13.160 +			# Get the list of partitions.
  13.161 +			DEVICES_LIST=`fdisk -l | grep 83 | cut -d " " -f 1`
  13.162 +			# Mount filesystems rw.
  13.163 +			for device in $DEVICES_LIST
  13.164 +			do
  13.165 +				name=${device#/dev/}
  13.166 +				# Device can be already used by home=usb.
  13.167 +				if ! mount | grep ^$device >/dev/null; then
  13.168 +					echo "Mounting partition: $name on /mnt/$name"
  13.169 +					mkdir /mnt/$name
  13.170 +					mount $device /mnt/$name
  13.171 +				fi
  13.172 +			done ;;
  13.173 +		mount-packages)
  13.174 +			# Mount and install packages-XXX.iso (useful without Internet 
  13.175 +			# connection).
  13.176 +			PKGSIGN="LABEL=\"packages-$(cat /etc/slitaz-release)\" TYPE=\"iso9660\""
  13.177 +			PKGDEV=$(blkid | grep "$PKGSIGN" | cut -d: -f1)
  13.178 +			[ -z "$PKGDEV" -a -L /dev/cdrom ] && \
  13.179 +				PKGDEV=$(blkid /dev/cdrom | grep "$PKGSIGN" | cut -d: -f1)
  13.180 +			if [ -n "$PKGDEV" ]; then
  13.181 +				echo -n "Mounting packages archive from $PKGDEV..."
  13.182 +				mkdir /packages && mount -t iso9660 -o ro $PKGDEV /packages
  13.183 +				status
  13.184 +				/packages/install.sh
  13.185 +			fi ;;
  13.186 +		wm=*)
  13.187 +			# Check for a Window Manager (for a flavor, default WM can be changed
  13.188 +			# with boot options or with an addfile in /etc/X11/wm.default.
  13.189 +			WM=${opt#wm=}
  13.190 +			mkdir -p /etc/X11
  13.191 +			case $WM in
  13.192 +				jwm)
  13.193 +					echo "jwm" > /etc/X11/wm.default ;;
  13.194 +				ob|openbox|openbox-session)
  13.195 +					echo "openbox" > /etc/X11/wm.default ;;
  13.196 +				e17|enlightenment|enlightenment_start)
  13.197 +					echo "enlightenment" > /etc/X11/wm.default ;;
  13.198 +				fluxbox|startfluxbox)
  13.199 +					echo "fluxbox" > /etc/X11/wm.default ;;
  13.200 +				awesome)
  13.201 +					echo "awesome" > /etc/X11/wm.default ;;
  13.202 +				pekwm)
  13.203 +					echo "pekwm" > /etc/X11/wm.default ;;
  13.204 +				xfce|xfce4|xfce4-session)
  13.205 +					echo "xfce" > /etc/X11/wm.default ;;
  13.206 +			esac ;;
  13.207 +		*)
  13.208 +			continue ;;
  13.209 +	esac
  13.210 +done
  13.211 +
  13.212 +# If no default WM fallback to Openbox (we never know).
  13.213 +if [ ! -f /etc/X11/wm.default ]; then
  13.214 +	echo "openbox" > /etc/X11/wm.default
  13.215 +fi
  13.216 +
  13.217 +# Activate an eventual swap file or partition.
  13.218 +if [ "`fdisk -l | grep swap`" ]; then
  13.219 +	for SWAP_DEV in `fdisk -l | grep swap | awk '{ print $1 }'`; do
  13.220 +		echo "Swap memory detected on: $SWAP_DEV"
  13.221 +		add_swap_in_fstab $SWAP_DEV
  13.222 +	done
  13.223 +fi
  13.224 +if grep -q swap /etc/fstab; then
  13.225 +	echo "Activating swap memory..."
  13.226 +	swapon -a
  13.227 +fi
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/core/overlay/etc/passwd	Sat Dec 18 17:56:17 2010 +0000
    14.3 @@ -0,0 +1,7 @@
    14.4 +root:x:0:0:Root Administrator:/root:/bin/sh
    14.5 +nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
    14.6 +www:x:80:80:Web Server User:/var/www:/bin/false
    14.7 +messagebus:x:25:25:DBUS Daemon User:/dev/null:/bin/false
    14.8 +haldaemon:x:26:26:HAL Daemon User:/dev/null:/bin/false
    14.9 +clamav:x:39:39:Linux User,,,:/home/clamav:/bin/false
   14.10 +privoxy:x:40:40:Linux User,,,:/home/privoxy:/bin/false
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/core/overlay/etc/shadow	Sat Dec 18 17:56:17 2010 +0000
    15.3 @@ -0,0 +1,7 @@
    15.4 +root:$1$EbR327ag$7NFmnOi7JQc5/lG0JLiU8/:13525:0:99999:7:::
    15.5 +nobody:*:13509:0:99999:7:::
    15.6 +www:*:13509:0:99999:7:::
    15.7 +messagebus:!:14013:0:99999:7:::
    15.8 +haldaemon:!:14013:0:99999:7:::
    15.9 +clamav:!:14945:0:99999:7:::
   15.10 +privoxy:!:14945:0:99999:7:::
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/core/overlay/etc/slim.conf	Sat Dec 18 17:56:17 2010 +0000
    16.3 @@ -0,0 +1,80 @@
    16.4 +# /etc/slim.conf: Slim login manger configuration file
    16.5 +#
    16.6 +
    16.7 +# Path, X server and arguments (if needed)
    16.8 +# Note: -xauth $authfile is automatically appended
    16.9 +default_path        ./:/bin:/usr/bin:/usr/local/bin
   16.10 +default_xserver     /usr/bin/Xvesa
   16.11 +xserver_arguments   -ac -shadow dpms +extension Composite -screen 1024x768x24
   16.12 +
   16.13 +# Commands for halt, login, etc.
   16.14 +halt_cmd            /sbin/poweroff
   16.15 +reboot_cmd          /sbin/reboot
   16.16 +console_cmd         /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -l -c "exec /bin/login"
   16.17 +#suspend_cmd         /usr/sbin/suspend
   16.18 +
   16.19 +# Full path to the xauth binary
   16.20 +xauth_path          /usr/bin/xauth 
   16.21 +
   16.22 +# Xauth file for server
   16.23 +authfile            /var/run/slim.auth
   16.24 +
   16.25 +# Activate numlock when slim starts. Valid values: on|off
   16.26 +# numlock             on
   16.27 +
   16.28 +# Hide the mouse cursor (note: does not work with some WMs).
   16.29 +# Valid values: true|false
   16.30 +hidecursor          true
   16.31 +
   16.32 +# This command is executed after a succesful login.
   16.33 +# you can place the %session and %theme variables
   16.34 +# to handle launching of specific commands in .xinitrc
   16.35 +# depending of chosen session and slim theme
   16.36 +login_cmd           exec /bin/sh -l ~/.xinitrc %session
   16.37 +
   16.38 +# Commands executed when starting and exiting a session.
   16.39 +# They can be used for registering a X11 session with
   16.40 +# sessreg. You can use the %user variable
   16.41 +#
   16.42 +# sessionstart_cmd	some command
   16.43 +# sessionstop_cmd	some command
   16.44 +
   16.45 +# Start in daemon mode. Valid values: yes | no
   16.46 +# Note that this can overridden by the command line
   16.47 +# option "-d"
   16.48 +#daemon	            yes
   16.49 +
   16.50 +# Available sessions (first one is the default).
   16.51 +# The current chosen session name is replaced in the login_cmd
   16.52 +# above, so your login command can handle different sessions.
   16.53 +# see the xinitrc.sample file shipped with slim sources
   16.54 +sessions            openbox,e17,jwm,xfce,fluxbox
   16.55 +
   16.56 +# Executed when pressing F11 (requires imagemagick)
   16.57 +#screenshot_cmd      mtpaint -s /root/slim-shot.png
   16.58 +
   16.59 +# welcome message. Available variables: %host, %domain
   16.60 +welcome_msg         Welcome to %host
   16.61 +
   16.62 +# shutdown / reboot messages
   16.63 +shutdown_msg       The system is going down...
   16.64 +reboot_msg         The system is rebooting...
   16.65 +
   16.66 +# default user, leave blank or remove this line
   16.67 +# for avoid pre-loading the username.
   16.68 +default_user        tux
   16.69 +
   16.70 +# current theme, use comma separated list to specify a set to 
   16.71 +# randomly choose from
   16.72 +current_theme       slitaz,base
   16.73 +
   16.74 +# Lock file
   16.75 +lockfile            /var/lock/slim.lock
   16.76 +
   16.77 +# Log file
   16.78 +logfile             /var/log/slim.log
   16.79 +
   16.80 +# Let normal users have access to systems commands. If the value is true,
   16.81 +# then the root password is requiered to start a system command.
   16.82 +# Valid values: true|false
   16.83 +# root_password false
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/core/rootcd/README	Sat Dec 18 17:56:17 2010 +0000
    17.3 @@ -0,0 +1,66 @@
    17.4 +README SliTaz GNU/Linux CD                                        November 2010
    17.5 +===============================================================================
    17.6 +
    17.7 +
    17.8 +Français
    17.9 +--------
   17.10 +Ce cdrom est un système autonome Live, il vous suffit de démarrer sur le CD
   17.11 +(booter) et SliTaz se lance en mémoire vive (RAM), sans toucher à votre système
   17.12 +actuel. SliTaz peut fonctionner des mois entiers sans redémarrer, le système
   17.13 +peut fonctionner dans 144 Mb de mémoire vive et sur des machines sans disque dur.
   17.14 +Mais SliTaz est aussi pleinement installable sur un disque dur et largement
   17.15 +extensible via le gestionnaire de paquets et la compilation de nouvelles
   17.16 +applications depuis les sources.
   17.17 +
   17.18 +Une fois le système lancé, vous disposez d'un shell ash, et vous pouvez retirer
   17.19 +le cdrom, car SliTaz utilise la mémoire vive (RAM) de la machine. Le système
   17.20 +fournit plus de 200 commandes Linux, navigateur web, client de chat IRC,
   17.21 +support IDE, eth0, usb, le système X et bien plus {...}.
   17.22 +
   17.23 +SliTaz peut être utilisé pour réparer, et tester un disque dur avec fdisk,
   17.24 +hdparm, ou les outils e2fsprogs. Le système et aussi pleinement installable
   17.25 +avec l'outil slitaz-installer.
   17.26 +
   17.27 +Slitaz GNU/Linux est distribué sans aucune garantie et publié car
   17.28 +potentiellement utile. SliTaz n'as aucune prétention, nous ne sommes que des
   17.29 +passionnés par l'informatique libre, qui aimons la liberté et le partage. Sur
   17.30 +le système vous trouverez le manuel d'utilisateur et la documentation dans :
   17.31 +/usr/share/doc, et les licences complète dans : /usr/share/licenses.
   17.32 +
   17.33 +Havefun!
   17.34 +
   17.35 +
   17.36 +English
   17.37 +-------
   17.38 +SliTaz is a micro GNU/Linux distro using BusyBox, a Linux kernel, and GNU
   17.39 +free software. SliTaz also use goodies from the Debian project. The goal of
   17.40 +SliTaz is to have a GNU/Linux distro working entirely in memory (RAM). SliTaz 
   17.41 +boots with Syslinux, provides more than 200 Linux commands, a SSH server/client 
   17.42 +powered by Dropbear, rescue tools, and much more {...}.
   17.43 +
   17.44 +On the system you will find documentation in /usr/share/doc, and the full
   17.45 +GPL license in /usr/share/licenses.
   17.46 +
   17.47 +
   17.48 +LICENSE
   17.49 +-------
   17.50 +
   17.51 +Copyright (c)  2007  SliTaz GNU/Linux
   17.52 +
   17.53 +SliTaz is free software; you can redistribute it and/or modify
   17.54 +it under the terms of the GNU General Public License as published by
   17.55 +the Free Software Foundation; either version 3 of the License, or
   17.56 +(at your option) any later version.
   17.57 +
   17.58 +SliTaz is distributed in the hope that it will be useful,
   17.59 +but WITHOUT ANY WARRANTY; without even the implied warranty of
   17.60 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   17.61 +GNU General Public License for more details.
   17.62 +
   17.63 +You should have received a copy of the GNU General Public License
   17.64 +along with SliTaz; if not, write to the Free Software
   17.65 +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
   17.66 +
   17.67 +
   17.68 +===============================================================================
   17.69 +                                                         http://www.slitaz.org/
    18.1 Binary file core/rootcd/images/header.png has changed
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/core/rootcd/index.html	Sat Dec 18 17:56:17 2010 +0000
    19.3 @@ -0,0 +1,64 @@
    19.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    19.5 +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    19.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    19.7 +<head>
    19.8 +	<title>SliTaz GNU/Linux - CD</title>
    19.9 +	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
   19.10 +	<meta name="description" content="SliTaz documentation book" />
   19.11 +	<meta name="expires" content="never" />
   19.12 +	<meta name="modified" content="2007-10-07 20:30:00" />
   19.13 +	<meta name="publisher" content="www.slitaz.org" />
   19.14 +	<meta name="author" content="Christophe Lincoln"/>
   19.15 +	<link rel="stylesheet" type="text/css" href="style.css" />
   19.16 +</head>
   19.17 +<body bgcolor="#ffffff">
   19.18 +<!-- Header -->
   19.19 +<div id="header">
   19.20 +	<a name="top"></a>
   19.21 +	<h1>SliTaz GNU/Linux - CD</h1>
   19.22 +</div>
   19.23 +
   19.24 +<!-- Content -->
   19.25 +<div id="content">
   19.26 +<h2><font color="#DF8F06">LiveCD informations</font></h2>
   19.27 +
   19.28 +<h3><font color="#9c2424">Français</font></h3>
   19.29 +<p>
   19.30 +Bienvenue sur la page d'index d'un cdrom de SliTaz GNU/Linux. Lisez le
   19.31 +fichier <a href="README">README</a> pour de plus amples informations, ou
   19.32 +démarrez votre ordinateur avec le cdrom dans le lecteur CD ou DVD, pour
   19.33 +lancer SliTaz en RAM et sans risques pour la machine hôte.
   19.34 +</p>
   19.35 +
   19.36 +<h3><font color="#9c2424">English</font></h3>
   19.37 +<p>
   19.38 +Welcome to the SliTaz GNU/Linux cdrom. SliTaz is mostly documented in French,
   19.39 +but the full system is available in English. To boot SliTaz from a cdrom
   19.40 +just burn the ISO image onto a blank disc. Then reboot your computer with
   19.41 +the disc in your cdrom drive.
   19.42 +</p>
   19.43 +<p>
   19.44 +Have fun!<br />
   19.45 +- SliTaz community
   19.46 +</p>
   19.47 +
   19.48 +</div>
   19.49 +<!-- End content -->
   19.50 +<hr />
   19.51 +<!-- Footer -->
   19.52 +<div align="center" id="footer">
   19.53 +<p>
   19.54 +<font size="-1">
   19.55 +    <a href="#top">Haut de la page</a>
   19.56 +</font>
   19.57 +</p>
   19.58 +<p>
   19.59 +<font size="-1">
   19.60 +    Copyright © 2007 <a href="http://www.slitaz.org/">SliTaz</a> -
   19.61 +    <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a><br />
   19.62 +    Code <a href="http://validator.w3.org/">XHTML 1.0 valide</a>.
   19.63 +</font>
   19.64 +</p>
   19.65 +</div>
   19.66 +</body>
   19.67 +</html>
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/core/rootcd/style.css	Sat Dec 18 17:56:17 2010 +0000
    20.3 @@ -0,0 +1,57 @@
    20.4 +/* CSS style for SliTaz GNU/Linux generic xHTML files. */
    20.5 +body {
    20.6 +    font: 90% sans-serif, vernada, arial;
    20.7 +    margin: 0;
    20.8 +    }
    20.9 +/* Header */
   20.10 +#header{
   20.11 +    background: #BFB06B url(images/header.png) repeat-x top;
   20.12 +    color: black;
   20.13 +    width: 100%;
   20.14 +    height: 50px ;
   20.15 +    border-top: 1px solid black;
   20.16 +    border-bottom: 1px solid black;
   20.17 +    }
   20.18 +#content {
   20.19 +	margin: 0px 50px 26px 50px;
   20.20 +	}
   20.21 +#footer {
   20.22 +	border-top: 1px solid black;
   20.23 +	}
   20.24 +a {
   20.25 +	text-decoration: underline;
   20.26 +	}
   20.27 +a:hover {
   20.28 +	text-decoration: none;
   20.29 +	}
   20.30 +h1 {
   20.31 +    margin: 10px 0px 0px 6px;
   20.32 +    }
   20.33 +h2 {
   20.34 +    margin: 12px 0;
   20.35 +    }
   20.36 +pre {
   20.37 +    padding: 5px;
   20.38 +    color: black;
   20.39 +    background: #e1e0b0;
   20.40 +    }
   20.41 +pre.script {
   20.42 +    padding: 10px;
   20.43 +    color: black;
   20.44 +    background: #e8e8e8;
   20.45 +    border: 1px inset #333333;
   20.46 +}
   20.47 +li {
   20.48 +    line-height: 1.4em;
   20.49 +    }
   20.50 +code {
   20.51 +    font-size: 100%;
   20.52 +    color: #669900;
   20.53 +    background: transparent;
   20.54 +    }
   20.55 +hr {
   20.56 +	color: white;
   20.57 +    background-color: white;
   20.58 +    height: 1px;
   20.59 +    border: 0;
   20.60 +	}
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/initramfs/initramfs.list	Sat Dec 18 17:56:17 2010 +0000
    21.3 @@ -0,0 +1,11 @@
    21.4 +busybox
    21.5 +glibc-base
    21.6 +kbd-busybox
    21.7 +linux
    21.8 +slitaz-base-files
    21.9 +slitaz-boot-scripts
   21.10 +zlib
   21.11 +linux-squashfs
   21.12 +aufs
   21.13 +module-init-tools
   21.14 +util-linux-ng-blkid
    22.1 --- a/list/a.001.justx.list	Thu Dec 16 09:28:36 2010 +0000
    22.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.3 @@ -1,96 +0,0 @@
    22.4 -busybox
    22.5 -bzlib
    22.6 -cairo
    22.7 -cdrkit
    22.8 -dbus
    22.9 -dbus-glib
   22.10 -dialog
   22.11 -dropbear
   22.12 -e2fsprogs
   22.13 -expat
   22.14 -fontconfig
   22.15 -freetype
   22.16 -gcc-lib-base
   22.17 -glib
   22.18 -glibc-base
   22.19 -gpxe
   22.20 -grub4dos-linux
   22.21 -hal
   22.22 -isapnptools
   22.23 -jpeg
   22.24 -kbd-busybox
   22.25 -libcap
   22.26 -libcomerr
   22.27 -libcrypto
   22.28 -libgcrypt
   22.29 -libgio
   22.30 -libpng
   22.31 -libxml2
   22.32 -linux
   22.33 -locale-de
   22.34 -locale-es
   22.35 -locale-fr
   22.36 -locale-pt
   22.37 -lzlib
   22.38 -lzma
   22.39 -nano
   22.40 -ncurses
   22.41 -openbox
   22.42 -pango
   22.43 -pciutils
   22.44 -pcmciautils
   22.45 -pcre
   22.46 -pixman
   22.47 -popt
   22.48 -ppp
   22.49 -rp-pppoe
   22.50 -slim
   22.51 -slitaz-base-files
   22.52 -slitaz-boot-scripts
   22.53 -slitaz-doc
   22.54 -slitaz-polar-cursors
   22.55 -slitaz-tools
   22.56 -sqlite
   22.57 -startup-notification
   22.58 -sysfsutils
   22.59 -syslinux
   22.60 -syslinux-extra
   22.61 -tazlito
   22.62 -tazpkg
   22.63 -tazusb
   22.64 -tazwok
   22.65 -tiff
   22.66 -ttf-dejavu
   22.67 -udev
   22.68 -xorg-base-fonts
   22.69 -xorg-libfontenc
   22.70 -xorg-libICE
   22.71 -xorg-libSM
   22.72 -xorg-libX11
   22.73 -xorg-libXau
   22.74 -xorg-libXaw
   22.75 -xorg-libXcomposite
   22.76 -xorg-libXcursor
   22.77 -xorg-libXdamage
   22.78 -xorg-libXdmcp
   22.79 -xorg-libXext
   22.80 -xorg-libXfixes
   22.81 -xorg-libXfont
   22.82 -xorg-libXft
   22.83 -xorg-libXi
   22.84 -xorg-libXinerama
   22.85 -xorg-libXmu
   22.86 -xorg-libXpm
   22.87 -xorg-libXrandr
   22.88 -xorg-libXrender
   22.89 -xorg-libXt
   22.90 -xorg-libXtst
   22.91 -xorg-rgb
   22.92 -xorg-server
   22.93 -xorg-setxkbmap
   22.94 -xorg-xauth
   22.95 -xorg-xf86-input-evdev
   22.96 -xorg-xf86-video-vesa
   22.97 -xorg-xsetroot
   22.98 -xterm
   22.99 -zlib
    23.1 --- a/list/a.002.core-basic.list	Thu Dec 16 09:28:36 2010 +0000
    23.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.3 @@ -1,155 +0,0 @@
    23.4 -atk
    23.5 -busybox
    23.6 -bzlib
    23.7 -cairo
    23.8 -cdrkit
    23.9 -clearlooks
   23.10 -dbus
   23.11 -dbus-glib
   23.12 -dialog
   23.13 -dropbear
   23.14 -e2fsprogs
   23.15 -expat
   23.16 -fontconfig
   23.17 -freetype
   23.18 -gamin
   23.19 -gcc-lib-base
   23.20 -get-wifi-firmware
   23.21 -glib
   23.22 -glibc-base
   23.23 -gpxe
   23.24 -grub4dos-linux
   23.25 -gtk+
   23.26 -gtkdialog
   23.27 -hal
   23.28 -hardinfo
   23.29 -hicolor-icon-theme
   23.30 -isapnptools
   23.31 -jpeg
   23.32 -kbd-busybox
   23.33 -leafpad
   23.34 -libcap
   23.35 -libcomerr
   23.36 -libgio
   23.37 -libglade
   23.38 -libpng
   23.39 -libxml2
   23.40 -linux
   23.41 -linux-wireless
   23.42 -linux-sound
   23.43 -locale-de
   23.44 -locale-es
   23.45 -locale-fr
   23.46 -locale-pt
   23.47 -lxappearance
   23.48 -lxpanel
   23.49 -lxtask
   23.50 -lzlib
   23.51 -lzma
   23.52 -nano
   23.53 -nanochess
   23.54 -ncurses
   23.55 -ncursesw
   23.56 -obconf
   23.57 -openbox
   23.58 -pango
   23.59 -pciutils
   23.60 -pcmanfm
   23.61 -pcmciautils
   23.62 -pcre
   23.63 -pixman
   23.64 -popt
   23.65 -ppp
   23.66 -rp-pppoe
   23.67 -shared-mime-info
   23.68 -slim
   23.69 -slitaz-base-files
   23.70 -slitaz-boot-scripts
   23.71 -slitaz-configs
   23.72 -slitaz-doc
   23.73 -slitaz-icon
   23.74 -slitaz-menus
   23.75 -slitaz-polar-cursors
   23.76 -slitaz-tools
   23.77 -slitaz-tools-boxes
   23.78 -sqlite
   23.79 -startup-notification
   23.80 -sysfsutils
   23.81 -syslinux
   23.82 -syslinux-extra
   23.83 -tazlito
   23.84 -tazpkg
   23.85 -tazusb
   23.86 -tazwikiss
   23.87 -tazwok
   23.88 -tiff
   23.89 -transset-df
   23.90 -ttf-dejavu
   23.91 -udev
   23.92 -xorg
   23.93 -xorg-base-fonts
   23.94 -xorg-libfontenc
   23.95 -xorg-libICE
   23.96 -xorg-libSM
   23.97 -xorg-libX11
   23.98 -xorg-libXau
   23.99 -xorg-libXaw
  23.100 -xorg-libXcomposite
  23.101 -xorg-libXcursor
  23.102 -xorg-libXdamage
  23.103 -xorg-libXdmcp
  23.104 -xorg-libXext
  23.105 -xorg-libXfixes
  23.106 -xorg-libXfont
  23.107 -xorg-libXft
  23.108 -xorg-libXi
  23.109 -xorg-libXinerama
  23.110 -xorg-libXmu
  23.111 -xorg-libXpm
  23.112 -xorg-libXrandr
  23.113 -xorg-libXrender
  23.114 -xorg-libXt
  23.115 -xorg-libXtst
  23.116 -xorg-rgb
  23.117 -xorg-xauth
  23.118 -xorg-xcompmgr
  23.119 -xterm
  23.120 -zlib
  23.121 -libcrypto
  23.122 -wireless_tools
  23.123 -wpa_supplicant
  23.124 -mtpaint
  23.125 -libnotify
  23.126 -transmission
  23.127 -alsa-lib
  23.128 -alsaplayer
  23.129 -alsa-utils
  23.130 -asunder
  23.131 -galculator
  23.132 -ntfs-3g
  23.133 -ntfsprogs
  23.134 -web-applications
  23.135 -viewnior
  23.136 -sudoku-savant
  23.137 -desktop-file-utils
  23.138 -xorg-server
  23.139 -xorg-xf86-input-evdev
  23.140 -xorg-xf86-video-vesa
  23.141 -xorg-setxkbmap
  23.142 -mhwaveedit
  23.143 -isomaster
  23.144 -gcolor2
  23.145 -lostirc
  23.146 -gparted
  23.147 -beaver
  23.148 -lua
  23.149 -epdfview
  23.150 -915resolution
  23.151 -libunique
  23.152 -libwebkit
  23.153 -midori
  23.154 -gettext-base
  23.155 -xorg-xf86-input-synaptics
  23.156 -htop
  23.157 -aufs-utils
  23.158 -squashfs
    24.1 --- a/list/a.003.mesa.list	Thu Dec 16 09:28:36 2010 +0000
    24.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.3 @@ -1,3 +0,0 @@
    24.4 -mesa
    24.5 -mesa-dri
    24.6 -mesa-demos
    24.7 \ No newline at end of file
    25.1 --- a/list/a.004.xorg-xf86-video.list	Thu Dec 16 09:28:36 2010 +0000
    25.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.3 @@ -1,13 +0,0 @@
    25.4 -xorg-xf86-video-ati
    25.5 -xorg-xf86-video-i740
    25.6 -xorg-xf86-video-intel
    25.7 -#xorg-xf86-video-mga
    25.8 -xorg-xf86-video-neomagic
    25.9 -xorg-xf86-video-nv
   25.10 -xorg-xf86-video-openchrome
   25.11 -xorg-xf86-video-s3
   25.12 -xorg-xf86-video-savage
   25.13 -xorg-xf86-video-sis
   25.14 -xorg-xf86-video-trident
   25.15 -xorg-xf86-video-v4l
   25.16 -xorg-xf86-video-vmware
   25.17 \ No newline at end of file
    26.1 --- a/list/a.005.firefox.list	Thu Dec 16 09:28:36 2010 +0000
    26.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.3 @@ -1,1 +0,0 @@
    26.4 -firefox
    26.5 \ No newline at end of file
    27.1 --- a/list/a.006.libs.list	Thu Dec 16 09:28:36 2010 +0000
    27.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.3 @@ -1,54 +0,0 @@
    27.4 -abiword
    27.5 -gnumeric
    27.6 -mplayer
    27.7 -devede
    27.8 -gtkpod
    27.9 -gpodder
   27.10 -pidgin
   27.11 -uget
   27.12 -geany
   27.13 -deluge
   27.14 -mixxx
   27.15 -lmms
   27.16 -hydrogen
   27.17 -gimp
   27.18 -gimp-plug-ins
   27.19 -gimp-console
   27.20 -inkscape
   27.21 -xarchiver
   27.22 -comix
   27.23 -zsnes
   27.24 -stella
   27.25 -pcsxr-svn
   27.26 -visualboyadvance-gtk
   27.27 -virtualbox-ose
   27.28 -vlc
   27.29 -recorder
   27.30 -wine
   27.31 -#libs-only
   27.32 -python
   27.33 -patch
   27.34 -openssl
   27.35 -openssh
   27.36 -zip
   27.37 -unzip
   27.38 -bzip2
   27.39 -xz
   27.40 -libarchive
   27.41 -get-rar
   27.42 -perl
   27.43 -get-flash-plugin
   27.44 -ttf-dejavu-extra
   27.45 -libdvdcss
   27.46 -libdvdread
   27.47 -mpg123
   27.48 -dvd+rw-tools
   27.49 -openal
   27.50 -physfs
   27.51 -quesoglc
   27.52 -libsdl-net
   27.53 -libsdl-pango
   27.54 -libsdl-mixer
   27.55 -libsdl-perl
   27.56 -perl-locale-gettext
   27.57 -espeak
   27.58 \ No newline at end of file
    28.1 --- a/list/a.006.libs.removelist	Thu Dec 16 09:28:36 2010 +0000
    28.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.3 @@ -1,27 +0,0 @@
    28.4 -abiword
    28.5 -gnumeric
    28.6 -mplayer
    28.7 -devede
    28.8 -gtkpod
    28.9 -gpodder
   28.10 -pidgin
   28.11 -uget
   28.12 -geany
   28.13 -deluge
   28.14 -mixxx
   28.15 -lmms
   28.16 -hydrogen
   28.17 -gimp
   28.18 -gimp-plug-ins
   28.19 -gimp-console
   28.20 -inkscape
   28.21 -xarchiver
   28.22 -comix
   28.23 -zsnes
   28.24 -stella
   28.25 -pcsxr-svn
   28.26 -visualboyadvance-gtk
   28.27 -virtualbox-ose
   28.28 -vlc
   28.29 -recorder
   28.30 -wine
   28.31 \ No newline at end of file
    29.1 --- a/list/a.007.apps.list	Thu Dec 16 09:28:36 2010 +0000
    29.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.3 @@ -1,27 +0,0 @@
    29.4 -abiword
    29.5 -gnumeric
    29.6 -mplayer
    29.7 -devede
    29.8 -gtkpod
    29.9 -gpodder
   29.10 -pidgin
   29.11 -uget
   29.12 -geany
   29.13 -deluge
   29.14 -mixxx
   29.15 -lmms
   29.16 -hydrogen
   29.17 -gimp
   29.18 -gimp-plug-ins
   29.19 -gimp-console
   29.20 -inkscape
   29.21 -xarchiver
   29.22 -comix
   29.23 -zsnes
   29.24 -stella
   29.25 -pcsxr-svn
   29.26 -visualboyadvance-gtk
   29.27 -virtualbox-ose
   29.28 -vlc
   29.29 -recorder
   29.30 -#wine
   29.31 \ No newline at end of file
    30.1 --- a/list/a.008.mercurial.list	Thu Dec 16 09:28:36 2010 +0000
    30.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.3 @@ -1,1 +0,0 @@
    30.4 -mercurial
    30.5 \ No newline at end of file
    31.1 --- a/list/a.009.pentest.list	Thu Dec 16 09:28:36 2010 +0000
    31.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.3 @@ -1,23 +0,0 @@
    31.4 -aircrack-ng
    31.5 -airpwn
    31.6 -airsnort
    31.7 -aaphoto
    31.8 -aescrypt
    31.9 -nmap
   31.10 -snort
   31.11 -nfs-utils
   31.12 -wipe
   31.13 -tor
   31.14 -tinyproxy
   31.15 -testdisk
   31.16 -scanssh
   31.17 -sshfs-fuse
   31.18 -dd_rescue
   31.19 -sleuthkit
   31.20 -secure-delete
   31.21 -privoxy
   31.22 -magicrescue
   31.23 -mdk3
   31.24 -airoscript-ng
   31.25 -disktype
   31.26 -chntpw
   31.27 \ No newline at end of file
    32.1 --- a/list/a.010.clamav.list	Thu Dec 16 09:28:36 2010 +0000
    32.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.3 @@ -1,1 +0,0 @@
    32.4 -clamav
    32.5 \ No newline at end of file
    33.1 --- a/list/a.011.warzone2100.list	Thu Dec 16 09:28:36 2010 +0000
    33.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.3 @@ -1,1 +0,0 @@
    33.4 -warzone2100
    33.5 \ No newline at end of file
    34.1 --- a/list/a.012.frozen-bubble.list	Thu Dec 16 09:28:36 2010 +0000
    34.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.3 @@ -1,1 +0,0 @@
    34.4 -frozen-bubble
    34.5 \ No newline at end of file
    35.1 --- a/list/a.013.wine.list	Thu Dec 16 09:28:36 2010 +0000
    35.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.3 @@ -1,1 +0,0 @@
    35.4 -wine
    35.5 \ No newline at end of file
    36.1 --- a/list/initramfs.list	Thu Dec 16 09:28:36 2010 +0000
    36.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.3 @@ -1,14 +0,0 @@
    36.4 -busybox
    36.5 -gcc-lib-base
    36.6 -glibc-base
    36.7 -kbd-busybox
    36.8 -linux
    36.9 -slitaz-base-files
   36.10 -slitaz-boot-scripts
   36.11 -sysfsutils
   36.12 -udev
   36.13 -zlib
   36.14 -linux-squashfs
   36.15 -aufs
   36.16 -module-init-tools
   36.17 -util-linux-ng-blkid
    37.1 --- a/mkiso.sh	Thu Dec 16 09:28:36 2010 +0000
    37.2 +++ b/mkiso.sh	Sat Dec 18 17:56:17 2010 +0000
    37.3 @@ -15,7 +15,8 @@
    37.4  PUBLISHER="Slitaz"
    37.5  APPLICATION="Slitaz"
    37.6  CREATE_DEFAULT="n"
    37.7 -PROFILE="$(pwd)"
    37.8 +BASEDIR="$(pwd)"
    37.9 +PROFILE="$BASEDIR/$1"
   37.10  ver=""
   37.11  CDNAME="slitaz"
   37.12  RMSTUFF=n
   37.13 @@ -35,8 +36,6 @@
   37.14  LASTBR="$INITRAMFS"
   37.15  SGNFILE="$ISODIR/$CDNAME/livecd.sgn"
   37.16  MODULES_DIR="$WORKING/modules"
   37.17 -ROOT_MOD="$(ls -1 ${PROFILE}/list | head -1)"
   37.18 -INIT_ROOT="$MODULES_DIR/$(basename ${ROOT_MOD} .list)"
   37.19  HG_DIR="$WORKING/hg"
   37.20  COPY_HG="no"
   37.21  UPDATE_HG="no"
   37.22 @@ -55,6 +54,11 @@
   37.23  #    error "error: This script must be run as root."
   37.24  #    exit 1
   37.25  #fi
   37.26 +if [ "$1" = "" ]; then
   37.27 +	echo "$0 profile-name"
   37.28 +	echo "ex $0 core"
   37.29 +	exit 1
   37.30 +fi
   37.31  
   37.32  if [ -f ${PROFILE}/config ]; then
   37.33  	source ${PROFILE}/config
   37.34 @@ -97,7 +101,7 @@
   37.35  
   37.36  initramfs () {
   37.37  
   37.38 -	if [ ! -e "$PROFILE/list/initramfs.list" ]; then
   37.39 +	if [ ! -e "$BASEDIR/initramfs/initramfs.list" ]; then
   37.40  		error "error: $PROFILE/list/initramfs.list doesn't exist, aborting."
   37.41  		exit 1
   37.42  	fi
   37.43 @@ -113,7 +117,7 @@
   37.44  	fi
   37.45  
   37.46  	info "Making bootable image"
   37.47 -	cat "$PROFILE/list/initramfs.list" | grep -v "^#" | while read pkgname; do
   37.48 +	cat "$BASEDIR/initramfs/initramfs.list" | grep -v "^#" | while read pkgname; do
   37.49  		if [ ! -f ${INITRAMFS}/var/lib/tazpkg/installed/${pkgname}/files.list ]; then
   37.50  			tazpkg get-install $pkgname --root=$INITRAMFS | tee -a $LOG/initramfs.log
   37.51  			sleep 1
   37.52 @@ -130,14 +134,18 @@
   37.53  		cp -f $INITRAMFS/boot/vmlinuz* $ISODIR/boot/bzImage
   37.54  		rm -f $INITRAMFS/boot/vmlinuz*
   37.55  	#fi
   37.56 +	
   37.57 +	if [ -d $PROFILE/rootcd ]; then
   37.58 +		cp -af $PROFILE/rootcd/* $ISODIR/
   37.59 +	fi
   37.60  
   37.61  	info "Copying isolinux files..."
   37.62  	if [ -d $INST_ROOT/boot/isolinux ]; then
   37.63  		cp -a $INST_ROOT/boot/isolinux $ISODIR/boot
   37.64  	fi
   37.65  
   37.66 -	if [ -d $PROFILE/initramfs ]; then
   37.67 -		cp -af $PROFILE/initramfs/* $INITRAMFS
   37.68 +	if [ -d $BASEDIR/initramfs ]; then
   37.69 +		cp -af $BASEDIR/initramfs/* $INITRAMFS
   37.70  	fi
   37.71  }
   37.72  
   37.73 @@ -356,14 +364,14 @@
   37.74  	fi
   37.75  
   37.76  	info "Creating ISO image..."
   37.77 -		genisoimage -R -o $IMGNAME -b boot/isolinux/isolinux.bin \
   37.78 -		-c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
   37.79 -		-V "SliTaz" -input-charset iso8859-1 -boot-info-table $ISODIR
   37.80 +	genisoimage -R -o $IMGNAME -b boot/isolinux/isolinux.bin \
   37.81 +	-c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
   37.82 +	-V "SliTaz" -input-charset iso8859-1 -boot-info-table $ISODIR
   37.83  	if [ -x /usr/bin/isohybrid ]; then
   37.84  		info "Creating hybrid ISO..."
   37.85  		isohybrid "${IMGNAME}"
   37.86  	fi
   37.87 -    md5sum "${IMGNAME}" > $IMGMD5NAME
   37.88 +	md5sum "${IMGNAME}" > $IMGMD5NAME
   37.89  }
   37.90  
   37.91  if [ "$MODULES" != "" ]; then
    38.1 --- a/overlay/etc/fstab	Thu Dec 16 09:28:36 2010 +0000
    38.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.3 @@ -1,9 +0,0 @@
    38.4 -# /etc/fstab: Information about static filesystems.
    38.5 -#
    38.6 -proc            /proc        proc    defaults          0       0
    38.7 -sysfs           /sys         sysfs   defaults          0       0
    38.8 -devpts          /dev/pts     devpts  defaults          0       0
    38.9 -tmpfs           /dev/shm     tmpfs   defaults          0       0
   38.10 -tmpfs           /tmp	     tmpfs   defaults          0       0
   38.11 -#/dev/hda3       /home        ext3    defaults          0       2
   38.12 -#/dev/hdb1       /mnt/data    ext3    defaults          0       2
    39.1 --- a/overlay/etc/group	Thu Dec 16 09:28:36 2010 +0000
    39.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.3 @@ -1,17 +0,0 @@
    39.4 -root:x:0:
    39.5 -lp:x:10:
    39.6 -audio:x:20:
    39.7 -messagebus:x:25:
    39.8 -haldaemon:x:26:
    39.9 -nogroup:x:99:
   39.10 -www:x:80:
   39.11 -cdrom:x:30:
   39.12 -dialout:x:31:
   39.13 -disk:x:32:
   39.14 -floppy:x:33:
   39.15 -kmem:x:34:
   39.16 -tape:x:35:
   39.17 -tty:x:36:
   39.18 -vboxusers:x:37:
   39.19 -video:x:38:
   39.20 -clamav:x:39:
    40.1 --- a/overlay/etc/gshadow	Thu Dec 16 09:28:36 2010 +0000
    40.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.3 @@ -1,16 +0,0 @@
    40.4 -root:*::
    40.5 -messagebus:!::
    40.6 -haldaemon:!::
    40.7 -audio:!::
    40.8 -nogroup:!::
    40.9 -www:!::
   40.10 -cdrom:!::
   40.11 -dialout:!::
   40.12 -disk:!::
   40.13 -floppy:!::
   40.14 -kmem:!::
   40.15 -tape:!::
   40.16 -tty:!::
   40.17 -vboxusers:!::
   40.18 -video:!::
   40.19 -clamav:!::
    41.1 --- a/overlay/etc/passwd	Thu Dec 16 09:28:36 2010 +0000
    41.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.3 @@ -1,7 +0,0 @@
    41.4 -root:x:0:0:Root Administrator:/root:/bin/sh
    41.5 -nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
    41.6 -www:x:80:80:Web Server User:/var/www:/bin/false
    41.7 -messagebus:x:25:25:DBUS Daemon User:/dev/null:/bin/false
    41.8 -haldaemon:x:26:26:HAL Daemon User:/dev/null:/bin/false
    41.9 -clamav:x:39:39:Linux User,,,:/home/clamav:/bin/false
   41.10 -privoxy:x:40:40:Linux User,,,:/home/privoxy:/bin/false
    42.1 --- a/overlay/etc/shadow	Thu Dec 16 09:28:36 2010 +0000
    42.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.3 @@ -1,7 +0,0 @@
    42.4 -root:$1$EbR327ag$7NFmnOi7JQc5/lG0JLiU8/:13525:0:99999:7:::
    42.5 -nobody:*:13509:0:99999:7:::
    42.6 -www:*:13509:0:99999:7:::
    42.7 -messagebus:!:14013:0:99999:7:::
    42.8 -haldaemon:!:14013:0:99999:7:::
    42.9 -clamav:!:14945:0:99999:7:::
   42.10 -privoxy:!:14945:0:99999:7:::
    43.1 --- a/overlay/usr/bin/tazpkg	Thu Dec 16 09:28:36 2010 +0000
    43.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.3 @@ -1,2794 +0,0 @@
    43.4 -#!/bin/sh
    43.5 -# Tazpkg - Tiny autonomous zone packages manager.
    43.6 -#
    43.7 -# This is a lightwight packages manager for *.tazpkg files, all written in
    43.8 -# SHell script. It works well with Busybox ash shell and bash. Tazpkg lets you
    43.9 -# list, install, remove, download or get information about a package. You can
   43.10 -# use 'tazpkg usage' to get a list of commands with short descriptions. Tazpkg
   43.11 -# also resolves dependencies and can upgrade packages from a mirror. I18n is
   43.12 -# done with gettext and eval_gettext, ex:
   43.13 -# 	gettext "displayed text"; echo
   43.14 -# 	eval_gettext "display \$VARIABLE"; echo
   43.15 -# 	echo -e "BOLD `gettext \"i18n message\"`"
   43.16 -#
   43.17 -# (C) 2007-2010 SliTaz - GNU General Public License v3.
   43.18 -#
   43.19 -# Authors : Christophe Lincoln <pankso@slitaz.org>
   43.20 -#           Pascal Bellard <pascal.bellard@slitaz.org>
   43.21 -#           Eric Joseph-Alexandre <erjo@slitaz.org>
   43.22 -#           Paul Issott <paul@slitaz.org>
   43.23 -#           Rohit Joshi <jozee@slitaz.org>
   43.24 -#
   43.25 -VERSION=4.0
   43.26 -
   43.27 -####################
   43.28 -# Script variables #
   43.29 -####################
   43.30 -
   43.31 -. /etc/slitaz/tazpkg.conf
   43.32 -
   43.33 -# Include gettext helper script.
   43.34 -. /usr/bin/gettext.sh
   43.35 -
   43.36 -# Export package name for gettext.
   43.37 -TEXTDOMAIN='tazpkg'
   43.38 -export TEXTDOMAIN
   43.39 -
   43.40 -# Initialize some variables to use words rather than numbers for functions
   43.41 -# and actions.
   43.42 -COMMAND=$1
   43.43 -if [ -f "$2" ]; then
   43.44 -	# Set pkg basename for install, extract
   43.45 -	PACKAGE=$(basename ${2%.tazpkg} 2>/dev/null)
   43.46 -else
   43.47 -	# Pkg name for remove, search and all other cmds
   43.48 -	PACKAGE=${2%.tazpkg}
   43.49 -fi
   43.50 -PACKAGE_FILE=$2
   43.51 -TARGET_DIR=$3
   43.52 -TOP_DIR=`pwd`
   43.53 -INSTALL_LIST=""
   43.54 -
   43.55 -# Path to tazpkg used dir and configuration files
   43.56 -INSTALLED=$LOCALSTATE/installed
   43.57 -MIRROR=$LOCALSTATE/mirror
   43.58 -BLOCKED=$LOCALSTATE/blocked-packages.list
   43.59 -DEFAULT_MIRROR="http://mirror.slitaz.org/packages/`cat /etc/slitaz-release`/"
   43.60 -
   43.61 -# Check if the directories and files used by Tazpkg
   43.62 -# exist. If not and user is root we create them.
   43.63 -if test $(id -u) = 0 ; then
   43.64 -	if [ ! -d "$CACHE_DIR" ]; then
   43.65 -		mkdir -p $CACHE_DIR
   43.66 -	fi
   43.67 -	if [ ! -d "$INSTALLED" ]; then
   43.68 -		mkdir -p $INSTALLED
   43.69 -	fi
   43.70 -	if [ ! -f "$LOCALSTATE/mirror" ]; then
   43.71 -		echo "$DEFAULT_MIRROR" > $LOCALSTATE/mirror
   43.72 -	fi
   43.73 -fi
   43.74 -
   43.75 -####################
   43.76 -# Script functions #
   43.77 -####################
   43.78 -
   43.79 -# Print the usage.
   43.80 -usage ()
   43.81 -{
   43.82 -	echo -e "SliTaz package manager - Version: $VERSION\n
   43.83 -\033[1mUsage:\033[0m tazpkg [command] [package|dir|pattern|list|cat|--opt] [dir|--opt]
   43.84 -       tazpkg shell\n
   43.85 -\033[1mCommands: \033[0m
   43.86 -  usage            Print this short usage.
   43.87 -  bugs             Show known bugs in packages.
   43.88 -  list             List installed packages on the system by category or all.
   43.89 -  xhtml-list       Create a xHTML list of installed packages.
   43.90 -  list-mirror      List all available packages on the mirror (--diff for new).
   43.91 -  info             Print information about a package.
   43.92 -  desc             Print description of a package (if it exists).
   43.93 -  list-files       List the files installed with a package.
   43.94 -  list-config      List the configuration files.
   43.95 -  search           Search for a package by pattern or name (options: -i|-l|-m).
   43.96 -  search-pkgname   Search on mirror for package having a particular file.
   43.97 -  search-file	   Search for file(s) in all installed packages files.
   43.98 -  install          Install a local (*.tazpkg) package (--forced to force).
   43.99 -  install-list     Install all packages from a list of packages.
  43.100 -  remove           Remove the specified package and all installed files.
  43.101 -  extract          Extract a (*.tazpkg) package into a directory.
  43.102 -  pack             Pack an unpacked or prepared package tree.
  43.103 -  recharge         Recharge your packages.list from the mirror.
  43.104 -  repack           Create a package archive from an installed package.
  43.105 -  repack-config    Create a package archive with configuration files.
  43.106 -  recompress       Rebuild a package with the better compression ratio.
  43.107 -  upgrade          Upgrade one or all installed/listed package(s) on the mirror.
  43.108 -  upgradeable      Build upgradeable packages list quickly.
  43.109 -  block|unblock    Block an installed package version or unblock it for upgrade.
  43.110 -  get              Download a package into the current directory.
  43.111 -  get-install      Download and install a package from the mirror.
  43.112 -  get-install-list Download and install a list of packages from the mirror.
  43.113 -  check            Verify consistency of installed packages.
  43.114 -  add-flavor       Install the flavor list of packages.
  43.115 -  install-flavor   Install the flavor list of packages and remove other ones.
  43.116 -  set-release      Change release and update packages.
  43.117 -  clean-cache      Clean all packages downloaded in cache directory.
  43.118 -  depends          Display dependencies tree.
  43.119 -  rdepends         Display reverse dependencies tree.
  43.120 -  convert          Convert a deb/rpm/tgz/arch package to a slitaz (.tazpkg).
  43.121 -  link             Link a package from another slitaz installation.
  43.122 -  setup-mirror     Change the mirror url configuration.
  43.123 -  list-undigest    List undigest mirrors.
  43.124 -  remove-undigest  Remove an undigest mirror.
  43.125 -  add-undigest     Add an undigest mirror.
  43.126 -  setup-undigest   Update an undigest mirror.
  43.127 -  reconfigure      Replay post install script from package."
  43.128 -}
  43.129 -
  43.130 -# Status function with color (supported by Ash).
  43.131 -status()
  43.132 -{
  43.133 -	local CHECK=$?
  43.134 -	echo -en "\\033[70G[ "
  43.135 -	if [ $CHECK = 0 ]; then
  43.136 -		echo -en "\\033[1;33mOK"
  43.137 -	else
  43.138 -		echo -en "\\033[1;31mFailed"
  43.139 -	fi
  43.140 -	echo -e "\\033[0;39m ]"
  43.141 -	return $CHECK
  43.142 -}
  43.143 -
  43.144 -# Check if user is root to install, or remove packages.
  43.145 -check_root()
  43.146 -{
  43.147 -	if test $(id -u) != 0 ; then
  43.148 -		gettext \
  43.149 -"You must be root to run tazpkg with this option. Please use the command:
  43.150 -su followed by the root password to become super-user."; echo
  43.151 -		echo "" && exit 0
  43.152 -	fi
  43.153 -}
  43.154 -
  43.155 -# Check for a package name on cmdline.
  43.156 -check_for_package_on_cmdline()
  43.157 -{
  43.158 -	if [ -z "$PACKAGE" ]; then
  43.159 -		echo "" 
  43.160 -		gettext "Please specify a package name on the command line."; echo
  43.161 -		echo ""
  43.162 -		exit 0
  43.163 -	fi
  43.164 -}
  43.165 -
  43.166 -# Check if the package (*.tazpkg) exist before installing or extracting.
  43.167 -check_for_package_file()
  43.168 -{
  43.169 -	if [ ! -f "$PACKAGE_FILE" ]; then
  43.170 -		echo ""
  43.171 -		eval_gettext "Unable to find: \$PACKAGE_FILE"; echo
  43.172 -		echo "" && exit 0
  43.173 -	fi
  43.174 -}
  43.175 -
  43.176 -# Check for the receipt of an installed package.
  43.177 -check_for_receipt()
  43.178 -{
  43.179 -	if [ ! -f "$1$INSTALLED/$PACKAGE/receipt" ]; then
  43.180 -		FS=$1
  43.181 -		echo ""
  43.182 -		eval_gettext "Unable to find the receipt: \$FS\$INSTALLED/\$PACKAGE/receipt"; echo
  43.183 -		echo "" && exit 0
  43.184 -	fi
  43.185 -}
  43.186 -
  43.187 -# Get package name in a directory
  43.188 -package_fullname_in_dir()
  43.189 -{
  43.190 -	[ -f $2$1/receipt ] || return
  43.191 -	EXTRAVERSION=""
  43.192 -	. $2$1/receipt
  43.193 -	echo $PACKAGE-$VERSION$EXTRAVERSION
  43.194 -}
  43.195 -
  43.196 -# Get package name that is already installed.
  43.197 -get_installed_package_pathname()
  43.198 -{
  43.199 -	for i in $2$INSTALLED/${1%%-*}*; do
  43.200 -		[ -d $i ] || continue
  43.201 -		if [ "$1" = "$(package_fullname_in_dir $i $2)" ]; then
  43.202 -			echo $i
  43.203 -			return
  43.204 -		fi
  43.205 -	done
  43.206 -}
  43.207 -
  43.208 -# Check if a package is already installed.
  43.209 -check_for_installed_package()
  43.210 -{
  43.211 -	if [ -n "$(get_installed_package_pathname $PACKAGE $1)" ]; then
  43.212 -		echo ""
  43.213 -		eval_gettext "\$PACKAGE package is already installed. You can
  43.214 -use the --forced option to force installation or remove it and reinstall."; echo
  43.215 -		echo "" && exit 0
  43.216 -	fi
  43.217 -}
  43.218 -
  43.219 -# Check for packages.list to download and install packages.
  43.220 -check_for_packages_list()
  43.221 -{
  43.222 -	if [ ! -f "$LOCALSTATE/packages.list" ]; then
  43.223 -		if test $(id -u) = 0 ; then
  43.224 -			tazpkg recharge
  43.225 -		else
  43.226 -			echo ""
  43.227 -			eval_gettext "Unable to find the list: \$LOCALSTATE/packages.list"; echo
  43.228 -			gettext \
  43.229 -"You must probably run 'tazpkg recharge' as root to get the latest list of
  43.230 -packages available on the mirror."; echo
  43.231 -			echo "" && exit 0
  43.232 -		fi
  43.233 -	fi
  43.234 -}
  43.235 -
  43.236 -# get an already installed package from packages.equiv
  43.237 -equivalent_pkg()
  43.238 -{
  43.239 -	for i in $(grep -hs "^$1=" $LOCALSTATE/packages.equiv \
  43.240 -		   $LOCALSTATE/undigest/*/packages.equiv | sed "s/^$1=//"); do
  43.241 -		if echo $i | grep -q : ; then
  43.242 -			# format 'alternative:newname'
  43.243 -			# if alternative is installed then substitute newname
  43.244 -			if [ -f $2$INSTALLED/${i%:*}/receipt ]; then
  43.245 -				# substitute package dependancy
  43.246 -				echo ${i#*:}
  43.247 -				return
  43.248 -			fi
  43.249 -		else
  43.250 -			# if alternative is installed then nothing to install
  43.251 -			if [ -f $2$INSTALLED/$i/receipt ]; then
  43.252 -				# substitute installed package
  43.253 -				echo $i
  43.254 -				return
  43.255 -			fi
  43.256 -		fi
  43.257 -	done
  43.258 -	# if not found in packages.equiv then no substitution
  43.259 -	echo $1
  43.260 -}
  43.261 -
  43.262 -# get a virtual package from packages.equiv
  43.263 -virtual_pkg()
  43.264 -{
  43.265 -	for i in $(grep -hs "^$1=" $LOCALSTATE/packages.equiv \
  43.266 -		   $LOCALSTATE/undigest/*/packages.equiv | sed "s/^$1=//"); do
  43.267 -		if echo $i | grep -q : ; then
  43.268 -			# format 'alternative:newname'
  43.269 -			# if alternative is installed then substitute newname
  43.270 -			if [ -f $2$INSTALLED/${i%:*}/receipt ]; then
  43.271 -				# substitute package dependancy
  43.272 -				echo ${i#*:}
  43.273 -				return
  43.274 -			fi
  43.275 -		else
  43.276 -			# unconditional substitution
  43.277 -			echo $i
  43.278 -			return
  43.279 -		fi
  43.280 -	done
  43.281 -}
  43.282 -
  43.283 -# Get package filename available on the mirror
  43.284 -get_package_filename()
  43.285 -{
  43.286 -	local pkg
  43.287 -	pkg=$(grep -A 1 -sh "^$1$" $LOCALSTATE/packages.txt \
  43.288 -		$LOCALSTATE/undigest/*/packages.txt | tail -1)
  43.289 -	pkg=$(echo $pkg)
  43.290 -	[ -n "$pkg" ] && pkg=$(grep -sh "^$1-$pkg" \
  43.291 -		$LOCALSTATE/packages.list \
  43.292 -		$LOCALSTATE/undigest/*/packages.list | head -1)
  43.293 -	[ -n "$pkg" ] || pkg=$(grep -sh "^$1-[0-9]" \
  43.294 -		$LOCALSTATE/packages.list \
  43.295 -		$LOCALSTATE/undigest/*/packages.list | head -1)
  43.296 -	[ -n "$pkg" ] || pkg=$(grep -sh "^$1-.[\.0-9]" \
  43.297 -		$LOCALSTATE/packages.list \
  43.298 -		$LOCALSTATE/undigest/*/packages.list | head -1)
  43.299 -	if [ -z "$pkg" ]; then
  43.300 -		# Check for vitual package
  43.301 -		local equiv
  43.302 -		equiv=$(virtual_pkg $1)
  43.303 -		if [ "$equiv" != "$1" ]; then
  43.304 -			PACKAGE=$equiv
  43.305 -			get_package_filename $PACKAGE
  43.306 -			return
  43.307 -		fi
  43.308 -	fi
  43.309 -	echo $pkg
  43.310 -}
  43.311 -
  43.312 -# Check for a package in packages.list. Used by get and get-install to grep
  43.313 -# package basename.
  43.314 -check_for_package_in_list()
  43.315 -{
  43.316 -	local filename
  43.317 -	local check_only
  43.318 -	check_only="$1"
  43.319 -	filename=$(get_package_filename $PACKAGE)
  43.320 -	if [ -n "$filename" ]; then
  43.321 -		PACKAGE=$filename
  43.322 -	else
  43.323 -		echo ""
  43.324 -		eval_gettext "Unable to find: \$PACKAGE in the mirrored packages list."; echo
  43.325 -		echo ""
  43.326 -		[ -n "$check_only" ] && return 1
  43.327 -		exit 0
  43.328 -	fi
  43.329 -}
  43.330 -
  43.331 -# Log this activity
  43.332 -log()
  43.333 -{
  43.334 -	local extra
  43.335 -	[ "$1" = "Installed" ] && \
  43.336 -	extra=" - $(grep $PACKAGE-$VERSION $LOCALSTATE/installed.md5 | awk '{ print $1 }')"
  43.337 -	[ -e $LOG ] || touch $LOG
  43.338 -	DATE=`date +'%F %T'`
  43.339 -	[ -w $LOG ] &&
  43.340 -	echo "$DATE - $1 - $PACKAGE ($VERSION$EXTRAVERSION)$extra" >> $LOG
  43.341 -}
  43.342 -
  43.343 -# Download a file from this mirror
  43.344 -download_from()
  43.345 -{
  43.346 -	local i
  43.347 -	local mirrors
  43.348 -	mirrors="$1"
  43.349 -	shift
  43.350 -	for i in $mirrors; do
  43.351 -		case "$i" in
  43.352 -		http://*|ftp://*) wget -c $i$@ && break;;
  43.353 -		*) cp $i/$1 . && break;;
  43.354 -		esac
  43.355 -	done
  43.356 -}
  43.357 -
  43.358 -# Download a file trying all mirrors
  43.359 -download()
  43.360 -{
  43.361 -	local i
  43.362 -	case "$1" in
  43.363 -	*.tazpkg)
  43.364 -		for i in $LOCALSTATE $LOCALSTATE/undigest/* ; do
  43.365 -			grep "^${1%.tazpkg}$" $i/packages.list || continue
  43.366 -			download_from "$(cat $i/mirror)" "$@" && return
  43.367 -		done
  43.368 -	esac
  43.369 -	for i in $(cat $MIRROR $LOCALSTATE/undigest/*/mirror 2> /dev/null); do
  43.370 -		download_from "$i" "$@" && break
  43.371 -	done
  43.372 -}
  43.373 -
  43.374 -# Extract a package with cpio and gzip/lzma.
  43.375 -extract_package()
  43.376 -{
  43.377 -	gettext "Extracting $PACKAGE... "
  43.378 -	cpio -idm < $PACKAGE.tazpkg && rm -f $PACKAGE.tazpkg
  43.379 -	if [ -f fs.cpio.lzma ]; then
  43.380 -		gettext "Extracting the pseudo fs... "
  43.381 -		echo -n "(lzma) "
  43.382 -		unlzma -c fs.cpio.lzma | cpio -idm && rm fs.cpio.lzma
  43.383 -	elif [ -f fs.cpio.gz ]; then
  43.384 -		gettext "Extracting the pseudo fs... "
  43.385 -		zcat fs.cpio.gz | cpio -idm && rm fs.cpio.gz
  43.386 -	fi
  43.387 -}
  43.388 -
  43.389 -remove_with_path()
  43.390 -{
  43.391 -	local dir
  43.392 -	rm -f $1 2>/dev/null
  43.393 -	dir="$1"
  43.394 -	while [ "$dir" != "/" ]; do
  43.395 -		dir="$(dirname $dir)"
  43.396 -		rmdir $dir 2> /dev/null || break
  43.397 -	done
  43.398 -}
  43.399 -
  43.400 -grepesc()
  43.401 -{
  43.402 -	sed 's/\[/\\[/g'
  43.403 -}
  43.404 -
  43.405 -# This function installs a package in the rootfs.
  43.406 -install_package()
  43.407 -{
  43.408 -	ROOT=$1
  43.409 -	if [ -n "$ROOT" ]; then
  43.410 -		 # Get absolute path
  43.411 -		 ROOT=$(cd $ROOT; pwd)
  43.412 -	fi
  43.413 -	(
  43.414 -		# Create package path early to avoid dependencies loop
  43.415 -		mkdir -p $TMP_DIR
  43.416 -		( cd $TMP_DIR ; cpio --quiet -i receipt > /dev/null 2>&1) < $PACKAGE_FILE
  43.417 -		. $TMP_DIR/receipt
  43.418 -		if grep -q ^pre_depends $TMP_DIR/receipt; then
  43.419 -			pre_depends $ROOT
  43.420 -		fi
  43.421 -		# keep modifers and file list on upgrade
  43.422 -		cp $ROOT$INSTALLED/$PACKAGE/modifiers \
  43.423 -		   $ROOT$INSTALLED/$PACKAGE/files.list $TMP_DIR 2> /dev/null
  43.424 -		rm -rf $ROOT$INSTALLED/$PACKAGE 2> /dev/null
  43.425 -		# Make the installed package data dir to store
  43.426 -		# the receipt and the files list.
  43.427 -		mkdir -p $ROOT$INSTALLED/$PACKAGE
  43.428 -		cp $TMP_DIR/modifiers $ROOT$INSTALLED/$PACKAGE 2> /dev/null
  43.429 -		cp $TMP_DIR/files.list $ROOT$INSTALLED/$PACKAGE 2> /dev/null
  43.430 -		rm -rf $TMP_DIR 2> /dev/null
  43.431 -		sed -i "/ $(basename $PACKAGE_FILE)$/d" \
  43.432 -			$ROOT$LOCALSTATE/installed.md5 2> /dev/null
  43.433 -		cd $(dirname $PACKAGE_FILE)
  43.434 -		md5sum $(basename $PACKAGE_FILE) >> $ROOT$LOCALSTATE/installed.md5
  43.435 -	)
  43.436 -	# Resolve package deps.
  43.437 -	check_for_deps $ROOT
  43.438 -	if [ ! "$MISSING_PACKAGE" = "" ]; then
  43.439 -		install_deps $ROOT
  43.440 -	fi
  43.441 -	mkdir -p $TMP_DIR
  43.442 -	[ -n "$INSTALL_LIST" ] && echo "$PACKAGE_FILE" >> $INSTALL_LIST-processed
  43.443 -	echo ""
  43.444 -	echo -e "\033[1m`gettext \"Installation of :\"`\033[0m $PACKAGE"
  43.445 -	echo "================================================================================"
  43.446 -	eval_gettext "Copying \$PACKAGE... "
  43.447 -	cp $PACKAGE_FILE $TMP_DIR
  43.448 -	status
  43.449 -	cd $TMP_DIR
  43.450 -	extract_package
  43.451 -	SELF_INSTALL=0
  43.452 -	EXTRAVERSION=""
  43.453 -	CONFIG_FILES=""
  43.454 -	# Include temporary receipt to get the right variables.
  43.455 -	. $PWD/receipt
  43.456 -	cd $ROOT$INSTALLED
  43.457 -	if [ $SELF_INSTALL -ne 0 -a -n "$ROOT" ]; then
  43.458 -		gettext "Checking post install dependencies... "
  43.459 -		[ -f $INSTALLED/$PACKAGE/receipt ]
  43.460 -		if ! status; then
  43.461 -			eval_gettext "Please run 'tazpkg install \$PACKAGE_FILE' in / and retry."; echo
  43.462 -			rm -rf $TMP_DIR
  43.463 -			exit 1
  43.464 -		fi
  43.465 -	fi
  43.466 -	# Get files to remove if upgrading
  43.467 -	if [ -f $PACKAGE/files.list ]; then
  43.468 -		while read file; do
  43.469 -			grep -q "^$(echo $file | grepesc)$" $TMP_DIR/files.list && continue
  43.470 -			for i in $(cat $PACKAGE/modifiers 2> /dev/null ;
  43.471 -			    grep -sl $PACKAGE */modifiers | cut -d/ -f1 ); do
  43.472 -				grep -qs "^$(echo $file | grepesc)$" $i/files.list && continue 2
  43.473 -			done
  43.474 -			echo $file
  43.475 -		done < $PACKAGE/files.list > $TMP_DIR/files2remove.list
  43.476 -	fi
  43.477 -	# Remember modified packages
  43.478 -	{ check=false
  43.479 -	  for i in $(grep -v '\[' $TMP_DIR/files.list); do
  43.480 -		[ -e "$ROOT$i" ] || continue
  43.481 -		[ -d "$ROOT$i" ] && continue
  43.482 -		echo "- $i"
  43.483 -		check=true
  43.484 -	  done ; 
  43.485 -	  $check && for i in *; do 
  43.486 -	  	[ "$i" == "$PACKAGE" ] && continue
  43.487 -	  	[ -s $i/files.list ] || continue
  43.488 -	  	awk "{ printf \"$i %s\\n\",\$1 }" < $i/files.list
  43.489 -	  done } | awk '
  43.490 -{
  43.491 -	if ($1 == "-" || file[$2] != "") {
  43.492 -		file[$2] = file[$2] " " $1
  43.493 -		if ($1 != "-") {
  43.494 -			if (pkg[$1] == "") all = all " " $1
  43.495 -			pkg[$1] = pkg[$1] " " $2
  43.496 -		}
  43.497 -	}
  43.498 -}
  43.499 -END {
  43.500 -	for (i = split(all, p, " "); i > 0; i--)
  43.501 -		for (j = split(pkg[p[i]], f, " "); j > 0; j--)
  43.502 -			printf "%s %s\n",p[i],f[j];
  43.503 -}
  43.504 -		' | while read dir file; do
  43.505 -		if grep -qs ^$dir$ $PACKAGE/modifiers; then
  43.506 -			# Do not overload an overloaded file !
  43.507 -			rm $TMP_DIR$file 2> /dev/null
  43.508 -			continue
  43.509 -		fi
  43.510 -		grep -qs ^$PACKAGE$ $dir/modifiers && continue
  43.511 -		if [ -s "$dir/volatile.cpio.gz" ]; then
  43.512 -			# We can modify backed up files without notice
  43.513 -			zcat $dir/volatile.cpio.gz | cpio -t 2> /dev/null | \
  43.514 -				grep -q "^${file#/}$" && continue
  43.515 -		fi
  43.516 -		echo "$PACKAGE" >> $dir/modifiers
  43.517 -	done
  43.518 -
  43.519 -	cd $TMP_DIR
  43.520 -	cp receipt files.list $ROOT$INSTALLED/$PACKAGE
  43.521 -	# Copy the description if found.
  43.522 -	if [ -f "description.txt" ]; then
  43.523 -		cp description.txt $ROOT$INSTALLED/$PACKAGE
  43.524 -	fi
  43.525 -	# Copy the md5sum if found.
  43.526 -	if [ -f "md5sum" ]; then
  43.527 -		cp md5sum $ROOT$INSTALLED/$PACKAGE
  43.528 -	fi
  43.529 -	# Pre install commands.
  43.530 -	if grep -q ^pre_install $ROOT$INSTALLED/$PACKAGE/receipt; then
  43.531 -		pre_install $ROOT
  43.532 -	fi
  43.533 -	if [ -n "$CONFIG_FILES" ]; then
  43.534 -		# save 'official' configuration files
  43.535 -		eval_gettext "Saving configuration files for \$PACKAGE... "
  43.536 -		for i in $CONFIG_FILES; do
  43.537 -			( cd fs ; find ${i#/} -type f )
  43.538 -		done | ( cd fs ; cpio -o -H newc | gzip -9 ) > \
  43.539 -			$ROOT$INSTALLED/$PACKAGE/volatile.cpio.gz
  43.540 -		# keep user configuration files
  43.541 -		for i in $CONFIG_FILES; do
  43.542 -			( cd fs ; find ${i#/} -type f )
  43.543 -		done | while read i; do
  43.544 -			[ -e $ROOT/$i ] || continue
  43.545 -			cp -a $ROOT/$i fs/$i
  43.546 -		done
  43.547 -		status
  43.548 -	fi
  43.549 -	eval_gettext "Installing \$PACKAGE... "
  43.550 -	cp -a fs/* $ROOT/
  43.551 -	status
  43.552 -	if [ -s files2remove.list ]; then
  43.553 -		eval_gettext "Removing old \$PACKAGE... "
  43.554 -		while read file; do
  43.555 -			remove_with_path $ROOT$file
  43.556 -		done < files2remove.list
  43.557 -		true
  43.558 -		status
  43.559 -	fi
  43.560 -	# Remove the temporary random directory.
  43.561 -	gettext "Removing all tmp files... "
  43.562 -	cd .. && rm -rf $TMP_DIR
  43.563 -	status
  43.564 -	# Post install commands.
  43.565 -	if grep -q ^post_install $ROOT$INSTALLED/$PACKAGE/receipt; then
  43.566 -		post_install $ROOT
  43.567 -	fi
  43.568 - 	# Update-desktop-database if needed.
  43.569 -	if [ "$(grep .desktop $ROOT$INSTALLED/$PACKAGE/files.list | grep /usr/share/applications/)" ]; then
  43.570 -		updatedesktopdb=yes
  43.571 -	fi
  43.572 -	# Update-mime-database if needed.
  43.573 -	if [ "$(grep /usr/share/mime $ROOT$INSTALLED/$PACKAGE/files.list)" ]; then
  43.574 -		updatemimedb=yes
  43.575 -	fi
  43.576 -	cd $TOP_DIR
  43.577 -	echo "================================================================================"
  43.578 -	eval_gettext "\$PACKAGE (\$VERSION\$EXTRAVERSION) is installed."; echo
  43.579 -	echo ""
  43.580 -	# Log this activity
  43.581 -	[ -n "$ROOT" ] || log Installed
  43.582 -}
  43.583 -
  43.584 -# Check for loop in deps tree.
  43.585 -check_for_deps_loop()
  43.586 -{
  43.587 -	local list
  43.588 -	local pkg
  43.589 -	local deps
  43.590 -	pkg=$1
  43.591 -	shift
  43.592 -	[ -n "$1" ] || return
  43.593 -	list=""
  43.594 -	# Filter out already processed deps
  43.595 -	for i in $@; do
  43.596 -		case " $ALL_DEPS" in
  43.597 -		*\ $i\ *);;
  43.598 -		*) list="$list $i";;
  43.599 -		esac
  43.600 -	done
  43.601 -	ALL_DEPS="$ALL_DEPS$list "
  43.602 -	for i in $list; do
  43.603 -		[ -f $i/receipt ] || continue
  43.604 -		deps="$(DEPENDS=""; . $i/receipt; echo $DEPENDS)"
  43.605 -		case " $deps " in
  43.606 -		*\ $pkg\ *) echo -e "$MSG  $i"; MSG="";;
  43.607 -		*) check_for_deps_loop $pkg $deps;;
  43.608 -		esac
  43.609 -	done
  43.610 -}
  43.611 -
  43.612 -# Check for missing deps listed in a receipt packages.
  43.613 -check_for_deps()
  43.614 -{
  43.615 -	local saved;
  43.616 -	saved=$PACKAGE
  43.617 -	mkdir -p $TMP_DIR
  43.618 -	( cd $TMP_DIR ; cpio --quiet -i receipt > /dev/null 2>&1) < $PACKAGE_FILE
  43.619 -	. $TMP_DIR/receipt
  43.620 -	PACKAGE=$saved
  43.621 -	rm -rf $TMP_DIR
  43.622 -	for pkgorg in $DEPENDS
  43.623 -	do
  43.624 -		i=$(equivalent_pkg $pkgorg $1)
  43.625 -		if [ ! -d "$1$INSTALLED/$i" ]; then
  43.626 -			MISSING_PACKAGE=$i
  43.627 -			deps=$(($deps+1))
  43.628 -		elif [ ! -f "$1$INSTALLED/$i/receipt" ]; then
  43.629 -			eval_gettext "WARNING Dependency loop between \$PACKAGE and \$i."; echo
  43.630 -		fi
  43.631 -	done
  43.632 -	if [ ! "$MISSING_PACKAGE" = "" ]; then
  43.633 -		echo -e "\033[1m`gettext \"Tracking dependencies for :\"`\033[0m $PACKAGE"
  43.634 -		echo "================================================================================"
  43.635 -		for pkgorg in $DEPENDS
  43.636 -		do
  43.637 -			i=$(equivalent_pkg $pkgorg $1)
  43.638 -			if [ ! -d "$1$INSTALLED/$i" ]; then
  43.639 -				MISSING_PACKAGE=$i
  43.640 -				eval_gettext "Missing: \$MISSING_PACKAGE"; echo
  43.641 -			fi
  43.642 -		done
  43.643 -		echo "================================================================================"
  43.644 -		eval_gettext "\$deps missing package(s) to install."; echo
  43.645 -	fi
  43.646 -}
  43.647 -
  43.648 -# Install all missing deps. Auto install or ask user then install all missing 
  43.649 -# deps from local dir, cdrom, media or from the mirror. In case we want to
  43.650 -# install packages from local, we need a packages.list to find the version.
  43.651 -install_deps()
  43.652 -{
  43.653 -	local root
  43.654 -	root=""
  43.655 -	[ -n "$1" ] && root="--root=$1"
  43.656 -	if [ "$AUTO_INSTALL_DEPS" == "yes" ]; then
  43.657 -		anser="y"
  43.658 -	else
  43.659 -		echo ""
  43.660 -		gettext "Install all missing dependencies (y/N) ? "; read anser
  43.661 -		echo ""
  43.662 -	fi
  43.663 -	if [ "$anser" == "y" ]; then
  43.664 -		for pkgorg in $DEPENDS
  43.665 -		do
  43.666 -			pkg=$(equivalent_pkg $pkgorg $1)
  43.667 -			if [ ! -d "$1$INSTALLED/$pkg" ]; then
  43.668 -				local list
  43.669 -				list="$INSTALL_LIST"
  43.670 -				[ -n "$list" ] || list="$TOP_DIR/packages.list"
  43.671 -				# We can install packages from a local dir by greping
  43.672 -				# the TAZPKG_BASENAME in the local packages.list.
  43.673 -				found=0
  43.674 -				if [ -f "$list" ]; then
  43.675 -					eval_gettext "Checking if \$pkg exists in local list... "; echo
  43.676 -					mkdir $TMP_DIR
  43.677 -					for i in $pkg-*.tazpkg; do
  43.678 -						[ -f $i ] || continue
  43.679 -						( cd $TMP_DIR ; cpio --quiet -i receipt > /dev/null 2>&1) < $i
  43.680 -						[ "$(. $TMP_DIR/receipt; echo $PACKAGE)" = "$pkg" ] || continue
  43.681 -						if grep -q ^$(package_fullname_in_dir $TMP_DIR).tazpkg$ $list
  43.682 -						then
  43.683 -							found=1
  43.684 -							tazpkg install $i $root --list=$list
  43.685 -							break
  43.686 -						fi
  43.687 -					done
  43.688 -					rm -rf $TMP_DIR
  43.689 -				fi
  43.690 -				# Install deps from the mirror.
  43.691 -				if [ $found -eq 0 ]; then
  43.692 -					if [ ! -f "$LOCALSTATE/packages.list" ]; then
  43.693 -						tazpkg recharge
  43.694 -					fi
  43.695 -					tazpkg get-install $pkg $root
  43.696 -				fi
  43.697 -			fi
  43.698 -		done
  43.699 -	else
  43.700 -		echo ""
  43.701 -		eval_gettext \
  43.702 -"Leaving dependencies for \$PACKAGE unsolved. The package is installed but
  43.703 -will probably not work."; echo
  43.704 -		echo ""
  43.705 -	fi
  43.706 -}
  43.707 -
  43.708 -# xHTML packages list header.
  43.709 -xhtml_header()
  43.710 -{
  43.711 -	cat > $XHTML_LIST << _EOT_
  43.712 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  43.713 -	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  43.714 -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  43.715 -<head>
  43.716 -	<title>Installed packages list</title>
  43.717 -	<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
  43.718 -	<meta name="modified" content="$DATE" />
  43.719 -	<meta name="generator" content="Tazpkg" />
  43.720 -	<style type="text/css"><!--
  43.721 -	body { font: 12px sans-serif, vernada, arial; margin: 0; }
  43.722 -	#header { background: #f0ba08; color: black; height: 50px;
  43.723 -		border-top: 1px solid black; border-bottom: 1px solid black; }
  43.724 -	#content { margin: 0px 50px 26px 50px; }
  43.725 -	#footer { border-top: 1px solid black; padding-top: 10px;}
  43.726 -	h1 { margin: 14px 0px 0px 16px; }
  43.727 -	pre { padding-left: 5px; }
  43.728 -	hr { color: white; background: white; height: 1px; border: 0; }
  43.729 -	--></style>
  43.730 -</head>
  43.731 -<body bgcolor="#ffffff">
  43.732 -<div id="header">
  43.733 -<h1><font color="#3e1220">Installed packages list</font></h1>
  43.734 -</div>
  43.735 -<hr />
  43.736 -<!-- Start content -->
  43.737 -<div id="content">
  43.738 -
  43.739 -<p>
  43.740 -_packages_ packages installed - List generated on : $DATE
  43.741 -<p>
  43.742 -
  43.743 -_EOT_
  43.744 -}
  43.745 -
  43.746 -# xHTML content with packages info.
  43.747 -xhtml_pkg_info()
  43.748 -{
  43.749 -	cat >> $XHTML_LIST << _EOT_
  43.750 -<h3>$PACKAGE</h3>
  43.751 -<pre>
  43.752 -Version    : $VERSION$EXTRAVERSION
  43.753 -Short desc : $SHORT_DESC
  43.754 -Web site   : <a href="$WEB_SITE">$WEB_SITE</a>
  43.755 -</pre>
  43.756 -
  43.757 -_EOT_
  43.758 -}
  43.759 -
  43.760 -# xHTML packages list footer.
  43.761 -xhtml_footer()
  43.762 -{
  43.763 -	cat >> $XHTML_LIST << _EOT_
  43.764 -<hr />
  43.765 -<p id="footer">
  43.766 -$packages packages installed - List generated on : $DATE
  43.767 -</p>
  43.768 -
  43.769 -<!-- End content -->
  43.770 -</div>
  43.771 -</body>
  43.772 -</html>
  43.773 -_EOT_
  43.774 -}
  43.775 -
  43.776 -# Search pattern in installed packages.
  43.777 -search_in_installed_packages()
  43.778 -{
  43.779 -	gettext "Installed packages"; echo
  43.780 -	echo "================================================================================"
  43.781 -	list=`ls -1 $INSTALLED | grep -i "$PATTERN"`
  43.782 -	for pkg in $list
  43.783 -	do
  43.784 -		EXTRAVERSION=""
  43.785 -		[ -f $INSTALLED/$pkg/receipt ] || continue
  43.786 -		. $INSTALLED/$pkg/receipt
  43.787 -		echo -n "$PACKAGE "
  43.788 -		echo -en "\033[24G $VERSION$EXTRAVERSION"
  43.789 -		echo -e "\033[42G $CATEGORY"
  43.790 -		packages=$(($packages+1))
  43.791 -	done
  43.792 -	# Set correct ending messages.
  43.793 -	if [ "$packages" = "" ]; then
  43.794 -		eval_gettext "0 installed packages found for : \$PATTERN"; echo
  43.795 -		echo ""
  43.796 -	else
  43.797 -		echo "================================================================================"
  43.798 -		eval_gettext "\$packages installed package(s) found for : \$PATTERN"; echo
  43.799 -		echo ""
  43.800 -	fi
  43.801 -}
  43.802 -
  43.803 -# Search in packages.list for available pkgs.
  43.804 -search_in_packages_list()
  43.805 -{
  43.806 -	gettext "Available packages name-version"; echo
  43.807 -	echo "================================================================================"
  43.808 -	packages=0
  43.809 -	for i in $LOCALSTATE/packages.list $LOCALSTATE/undigest/*/packages.list; do
  43.810 -		grep -is "$PATTERN" $i
  43.811 -		packages=$(($packages + `grep -is "$PATTERN" $i | wc -l`))
  43.812 -	done
  43.813 -	if [ ! -f "$LOCALSTATE/packages.list" ]; then
  43.814 -		echo ""
  43.815 -		gettext \
  43.816 -"No 'packages.list' found to check for mirrored packages. For more results,
  43.817 -please run 'tazpkg recharge' once as root before searching."; echo
  43.818 -		echo ""
  43.819 -	fi
  43.820 -	if [ "$packages" = "0" ]; then
  43.821 -		eval_gettext "0 available packages found for : \$PATTERN"; echo
  43.822 -		echo ""
  43.823 -	else
  43.824 -		echo "================================================================================"
  43.825 -		eval_gettext "\$packages available package(s) found for : \$PATTERN"; echo
  43.826 -		echo ""
  43.827 -	fi
  43.828 -}
  43.829 -
  43.830 -# search --mirror: Search in packages.txt for available pkgs and give more
  43.831 -# info than --list or default.
  43.832 -search_in_packages_txt()
  43.833 -{
  43.834 -	gettext "Matching packages name with version and desc"; echo
  43.835 -	echo "================================================================================"
  43.836 -	packages=0
  43.837 -	for i in $LOCALSTATE/packages.txt $LOCALSTATE/undigest/*/packages.txt; do
  43.838 -		grep -is -A 2 "^$PATTERN" $i
  43.839 -		packages=$(($packages + `grep -is "^$PATTERN" $i | wc -l`))
  43.840 -	done
  43.841 -	if [ ! -f "$LOCALSTATE/packages.txt" ]; then
  43.842 -		echo ""
  43.843 -		gettext \
  43.844 -"No 'packages.txt' found to check for mirrored packages. For more results,
  43.845 -please run 'tazpkg recharge' once as root before searching."; echo
  43.846 -		echo ""
  43.847 -	fi
  43.848 -	if [ "$packages" = "0" ]; then
  43.849 -		eval_gettext "0 available packages found for : \$PATTERN"; echo
  43.850 -		echo ""
  43.851 -	else
  43.852 -		echo "================================================================================"
  43.853 -		eval_gettext "\$packages available package(s) found for : \$PATTERN"; echo
  43.854 -		echo ""
  43.855 -	fi
  43.856 -}
  43.857 -
  43.858 -# Install package-list from a flavor
  43.859 -install_flavor()
  43.860 -{
  43.861 -	check_root
  43.862 -	FLAVOR=$1
  43.863 -	ARG=$2
  43.864 -	mkdir -p $TMP_DIR
  43.865 -	[ -f $FLAVOR.flavor ] && cp $FLAVOR.flavor $TMP_DIR
  43.866 -	cd $TMP_DIR
  43.867 -	if [ -f $FLAVOR.flavor ] || download $FLAVOR.flavor; then
  43.868 -		zcat $FLAVOR.flavor | cpio -i >/dev/null
  43.869 -		while read file; do
  43.870 -			for pkg in $(ls -d $INSTALLED/${file%%-*}*); do
  43.871 -				[ -f $pkg/receipt ] || continue
  43.872 -				EXTRAVERSION=""
  43.873 -				. $pkg/receipt
  43.874 -				[ "$PACKAGE-$VERSION$EXTRAVERSION" = "$file" ] && break
  43.875 -			done
  43.876 -			[ "$PACKAGE-$VERSION$EXTRAVERSION" = "$file" ] && continue
  43.877 -			cd $CACHE_DIR
  43.878 -			download $file.tazpkg
  43.879 -			cd $TMP_DIR
  43.880 -		        tazpkg install $CACHE_DIR/$file.tazpkg --forced
  43.881 -		done < $FLAVOR.pkglist
  43.882 -		[ -f $FLAVOR.nonfree ] && while read pkg; do
  43.883 -			[ -d $INSTALLED/$pkg ] || continue
  43.884 -			[ -d $INSTALLED/get-$pkg ] && tazpkg get-install get-$pkg
  43.885 -			get-$pkg
  43.886 -		done < $FLAVOR.nonfree
  43.887 -		[ "$ARG" == "--purge" ] && for pkg in $(ls $INSTALLED); do
  43.888 -			[ -f $INSTALLED/$pkg/receipt ] || continue
  43.889 -			EXTRAVERSION=""
  43.890 -			. $INSTALLED/$pkg/receipt
  43.891 -			grep -q ^$PACKAGE-$VERSION$EXTRAVERSION$ $FLAVOR.pkglist && continue
  43.892 -			grep -qs ^$PACKAGE$ $FLAVOR.nonfree && continue
  43.893 -			tazpkg remove $PACKAGE
  43.894 -		done
  43.895 -	else
  43.896 -		eval_gettext "Can't find flavor \$FLAVOR. Aborting."; echo
  43.897 -	fi
  43.898 -	cd $TOP_DIR
  43.899 -	rm -rf $TMP_DIR
  43.900 -}
  43.901 -
  43.902 -# Update mirror urls
  43.903 -setup_mirror()
  43.904 -{
  43.905 -	# Backup old list.
  43.906 -	if [ -f "$1/mirror" ]; then
  43.907 -		cp -f $1/mirror $1/mirror.bak
  43.908 -	fi
  43.909 -	echo ""
  43.910 -	echo -e "\033[1m`gettext \"Current mirror(s)\"`\033[0m"
  43.911 -	echo "================================================================================"
  43.912 -	echo "  `cat $1/mirror 2> /dev/null`"
  43.913 -	gettext \
  43.914 -"Please enter URL of the new mirror (http, ftp or local path). You must specify
  43.915 -the complete address to the directory of the packages and packages.list file."; echo
  43.916 -	echo ""
  43.917 -	gettext "New mirror(s) URL : "
  43.918 -	NEW_MIRROR_URL=$2
  43.919 -	if [ -n "$NEW_MIRROR_URL" ]; then
  43.920 -		echo $NEW_MIRROR_URL
  43.921 -	else
  43.922 -		read NEW_MIRROR_URL
  43.923 -	fi
  43.924 -	if [ "$NEW_MIRROR_URL" = "" ]; then
  43.925 -		gettext "Nothing has been changed."; echo
  43.926 -	else
  43.927 -		eval_gettext "Setting mirror(s) to : $NEW_MIRROR_URL"; echo
  43.928 -		rm -f $1/mirror
  43.929 -		for i in $NEW_MIRROR_URL; do
  43.930 -			echo "$i" >> $1/mirror
  43.931 -		done
  43.932 -	fi
  43.933 -	echo ""
  43.934 -}
  43.935 -
  43.936 -# recursive dependencies scan
  43.937 -dep_scan()
  43.938 -{
  43.939 -for i in $1; do
  43.940 -	case " $ALL_DEPS " in
  43.941 -	*\ $i\ *) continue;;
  43.942 -	esac
  43.943 -	ALL_DEPS="$ALL_DEPS $i"
  43.944 -	[ -n "$2" ] && echo "$2$i ($(grep -A 3 $i $LOCALSTATE/packages.txt \
  43.945 -				     | tail -1 | sed 's/.*(\([^ ]*\).*/\1/'))"
  43.946 -	[ -f $i/receipt ] || continue
  43.947 -	DEPENDS=""
  43.948 -	. $i/receipt
  43.949 -	[ -n "$DEPENDS" ] && dep_scan "$DEPENDS" "$2  "
  43.950 -done
  43.951 -}
  43.952 -
  43.953 -# recursive reverse dependencies scan
  43.954 -rdep_scan()
  43.955 -{
  43.956 -SEARCH=$1
  43.957 -
  43.958 -for i in * ; do
  43.959 -	DEPENDS=""
  43.960 -	. $i/receipt
  43.961 -	echo "$i $(echo $DEPENDS)"
  43.962 -done | awk -v search=$SEARCH '
  43.963 -function show_deps(deps, all_deps, pkg, space)
  43.964 -{
  43.965 -	if (all_deps[pkg] == 1) return
  43.966 -	all_deps[pkg] = 1
  43.967 -	if (space != "") printf "%s %s\n",space,pkg
  43.968 -	for (i = 1, n = split(deps[pkg], mydeps, " "); i <= n; i++) {
  43.969 -		show_deps(deps, all_deps, mydeps[i],"==" space)
  43.970 -	}
  43.971 -}
  43.972 -
  43.973 -{
  43.974 -	all_deps[$1] = 0
  43.975 -	for (i = 2; i <= NF; i++)
  43.976 -		deps[$i] = deps[$i] " " $1
  43.977 -}
  43.978 -
  43.979 -END {
  43.980 -	show_deps(deps, all_deps, search, "")
  43.981 -}
  43.982 -' | while read spc pkg; do
  43.983 -	echo -n $spc | sed 's/=/ /g'
  43.984 -	echo -n $pkg
  43.985 -	echo -n ' ('
  43.986 -	grep -A 3 $pkg $LOCALSTATE/packages.txt  | tail -1 | \
  43.987 -				    sed 's/.*(\([^ ]*\).*/\1)/'
  43.988 -done
  43.989 -}
  43.990 -
  43.991 -# Check for ELF file
  43.992 -is_elf()
  43.993 -{
  43.994 -	[ "$(dd if=$1 bs=1 skip=1 count=3 2> /dev/null)" = "ELF" ]
  43.995 -}
  43.996 -
  43.997 -# Print shared library dependencies
  43.998 -ldd()
  43.999 -{
 43.1000 -	LD_TRACE_LOADED_OBJECTS=1 /lib/ld*.so $1 2> /dev/null
 43.1001 -}
 43.1002 -
 43.1003 -# search dependencies for files in $TMP_DIR/$file/fs
 43.1004 -find_depends()
 43.1005 -{
 43.1006 -	DEFAULT_DEPENDS="glibc-base gcc-lib-base"
 43.1007 -
 43.1008 -	[ -f /var/lib/tazpkg/files.list.lzma ] || tazpkg recharge > /dev/null
 43.1009 -	for i in /var/lib/tazpkg/files.list.lzma \
 43.1010 - 		/var/lib/tazpkg/undigest/*/files.list.lzma ; do
 43.1011 - 		[ -f $i ] && lzma d $i -so >> $TMP_DIR/files.list
 43.1012 -	done
 43.1013 -	find $TMP_DIR/$file/fs -type f | while read chkfile ; do
 43.1014 -		is_elf $chkfile || continue
 43.1015 -		case "$chkfile" in
 43.1016 -		*.o|*.ko|*.ko.gz) continue;;
 43.1017 -		esac
 43.1018 -		ldd $chkfile | while read lib rem; do
 43.1019 -			case "$lib" in
 43.1020 -			statically|linux-gate.so*|ld-*.so|*/ld-*.so)
 43.1021 -				continue;;
 43.1022 -			esac
 43.1023 -			find $TMP_DIR/$file/fs | grep -q /$lib$ && continue
 43.1024 -			for dep in $(grep $lib files.list | cut -d: -f1); do
 43.1025 -				case " $DEFAULT_DEPENDS " in
 43.1026 -				*\ $dep\ *) continue 2;;
 43.1027 -				esac
 43.1028 -				grep -qs "^$dep$" $TMP_DIR/depends && continue 2
 43.1029 -			done
 43.1030 -			if [ -n "$dep" ]; then
 43.1031 -				echo "$dep" >> $TMP_DIR/depends
 43.1032 -			else
 43.1033 -				grep -qs ^$lib$ $TMP_DIR/unresolved ||
 43.1034 -				echo "$lib" >> $TMP_DIR/unresolved
 43.1035 -			fi
 43.1036 -		done
 43.1037 -	done
 43.1038 -	spc=""
 43.1039 -	cat $TMP_DIR/depends | sort | uniq | while read file; do
 43.1040 -		echo -n "$spc$file"
 43.1041 -		spc=" "
 43.1042 -	done
 43.1043 -}
 43.1044 -
 43.1045 -show_unresolved_lib()
 43.1046 -{
 43.1047 -	if [ -s $TMP_DIR/unresolved ]; then
 43.1048 -		echo "BUGS=\"No dependency for" >> $1
 43.1049 -		cat $TMP_DIR/unresolved | sort | uniq | while read file; do
 43.1050 -			echo -e "$WARNING: unknown dependency for $lib"
 43.1051 -			echo -n " $file" >> $1
 43.1052 -		done
 43.1053 -		echo "\"" >> $1
 43.1054 -	fi
 43.1055 -}
 43.1056 -
 43.1057 -# convert a .ipk package to .tazpkg
 43.1058 -convert_ipk()
 43.1059 -{
 43.1060 -	mkdir -p $TMP_DIR
 43.1061 -	tar xOzf $PACKAGE_FILE ./control.tar.gz | tar xzf - -C $TMP_DIR
 43.1062 -	package="$(grep ^Package $TMP_DIR/control | sed 's/.*: //')"
 43.1063 -	version="$(grep ^Version $TMP_DIR/control | sed 's/.*: //')"
 43.1064 -	maintainer="$(grep ^Maintainer $TMP_DIR/control | sed 's/.*: //')"
 43.1065 -	target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')"
 43.1066 -	descrip="$(grep ^Description $TMP_DIR/control | sed 's/.*: //')"
 43.1067 -	url="http://openwrt.org/"
 43.1068 -	case "$target" in
 43.1069 -	i386|all)
 43.1070 -		file=$package-$version
 43.1071 -		mkdir -p $TMP_DIR/$file/fs
 43.1072 -		tar xOzf $PACKAGE_FILE ./data.tar.gz | \
 43.1073 -			tar xzf - -C $TMP_DIR/$file/fs
 43.1074 -		cd $TMP_DIR
 43.1075 -		cat > $file/receipt <<EOT
 43.1076 -# SliTaz package receipt.
 43.1077 -# generated by tazpkg from package $(basename $PACKAGE_FILE)
 43.1078 -PACKAGE="$package"
 43.1079 -VERSION="$version"
 43.1080 -CATEGORY="misc"
 43.1081 -SHORT_DESC="$descrip"
 43.1082 -WEB_SITE="$url"
 43.1083 -MAINTAINER="$maintainer"
 43.1084 -DEPENDS="$(find_depends)"
 43.1085 -EOT
 43.1086 -		[ -s conffiles ] && cat >> $file/receipt <<EOT
 43.1087 -CONFIG_FILES="$(cat conffiles)"
 43.1088 -EOT
 43.1089 -		show_unresolved_lib $file/receipt
 43.1090 -		while read script func; do
 43.1091 -			[ -s $script ] && cat >> $file/receipt <<EOT
 43.1092 -
 43.1093 -$func()
 43.1094 -{
 43.1095 -$(cat $script)
 43.1096 -}
 43.1097 -EOT
 43.1098 -		done <<EOT
 43.1099 -preinst		pre_install
 43.1100 -postinst	post_install
 43.1101 -prerm		pre_remove
 43.1102 -postrm		post_remove
 43.1103 -EOT
 43.1104 -		awk '
 43.1105 -{
 43.1106 -   if (/^ / && show) print substr($0,2);
 43.1107 -   else show=0;
 43.1108 -   if (/^Description/) show=1;
 43.1109 -}' < $TMP_DIR/control > $file/description.txt
 43.1110 -		sed -i 's/^\.$//' $file/description.txt
 43.1111 -		[ -s $file/description.txt ] || rm -f $file/description.txt
 43.1112 -		tazpkg pack $file
 43.1113 -		cd $TOP_DIR
 43.1114 -		mv $TMP_DIR/$file.tazpkg .
 43.1115 -		;;
 43.1116 -	*)
 43.1117 -		gettext "Invalid target: $target (expected i386)"; echo
 43.1118 -		;;
 43.1119 -	esac
 43.1120 -	rm -rf $TMP_DIR
 43.1121 -}
 43.1122 -
 43.1123 -# convert a .pkg.tar.gz package to .tazpkg
 43.1124 -convert_arch()
 43.1125 -{
 43.1126 -	mkdir -p $TMP_DIR/fs
 43.1127 -	tar xzf $PACKAGE_FILE -C $TMP_DIR/fs
 43.1128 -	if [ -f $TMP_DIR/fs/.PKGINFO ]; then
 43.1129 -		cd $TMP_DIR
 43.1130 -		package="$(grep ^pkgname fs/.PKGINFO | sed 's/.*= //')"
 43.1131 -		version="$(grep ^pkgver  fs/.PKGINFO | sed 's/.*= //')"
 43.1132 -		descrip="$(grep ^pkgdesc fs/.PKGINFO | sed 's/.*= //')"
 43.1133 -		url="$(grep ^url fs/.PKGINFO | sed 's/.*= //')"
 43.1134 -		maintainer="$(grep ^packager fs/.PKGINFO | sed 's/.*= //')"
 43.1135 -		file=$package-$version
 43.1136 -		mkdir $file
 43.1137 -		mv fs $file
 43.1138 -		cat > $file/receipt <<EOT
 43.1139 -# SliTaz package receipt.
 43.1140 -# generated by tazpkg from Archlinux package $(basename $PACKAGE_FILE)
 43.1141 -PACKAGE="$package"
 43.1142 -VERSION="$version"
 43.1143 -CATEGORY="misc"
 43.1144 -SHORT_DESC="$descrip"
 43.1145 -WEB_SITE="$url"
 43.1146 -MAINTAINER="$maintainer"
 43.1147 -DEPENDS="$(find_depends)"
 43.1148 -EOT
 43.1149 -		show_unresolved_lib $file/receipt
 43.1150 -		rm -f $file/fs/.[A-Z]*
 43.1151 -		tazpkg pack $file
 43.1152 -		mv $file.tazpkg $TOP_DIR
 43.1153 -	else
 43.1154 -		eval_gettext "\$PACKAGE_FILE does not look like a Archlinux package !"; echo
 43.1155 -	fi
 43.1156 -	cd $TOP_DIR
 43.1157 -	rm -rf $TMP_DIR
 43.1158 -}
 43.1159 -
 43.1160 -# convert a .tgz package to .tazpkg
 43.1161 -convert_tgz()
 43.1162 -{
 43.1163 -	package=$(basename $PACKAGE_FILE)
 43.1164 -	IFS='-'
 43.1165 -	set -- $package
 43.1166 -	unset IFS
 43.1167 -	package=$1
 43.1168 -	version=$2
 43.1169 -	file="$package-$version"
 43.1170 -	mkdir -p $TMP_DIR/$file/fs
 43.1171 -	tar xzf $PACKAGE_FILE -C $TMP_DIR/$file/fs
 43.1172 -	cd $TMP_DIR
 43.1173 -	if [ -d $file/fs/install ]; then
 43.1174 -		descrip=$(grep ^$package $file/fs/install/slack-desc | \
 43.1175 -			  head -1 | sed 's/.*(\(.*\)).*/\1/')
 43.1176 -		cat > $file/receipt <<EOT
 43.1177 -# SliTaz package receipt.
 43.1178 -# generated by tazpkg from slackware package $(basename $PACKAGE_FILE)
 43.1179 -PACKAGE="$package"
 43.1180 -VERSION="$version"
 43.1181 -CATEGORY="misc"
 43.1182 -SHORT_DESC="$descrip"
 43.1183 -WEB_SITE="http://www.slackware.com/packages/"
 43.1184 -MAINTAINER="nobody@slitaz.org"
 43.1185 -DEPENDS="$(find_depends)"
 43.1186 -EOT
 43.1187 -		show_unresolved_lib $file/receipt
 43.1188 -		[ -f $file/fs/install/doinst.sh ] && cat >> $file/receipt <<EOM
 43.1189 -
 43.1190 -post_install()
 43.1191 -{
 43.1192 -chroot \$1/ sh - << EOT
 43.1193 -cd /
 43.1194 -$(cat $file/fs/install/doinst.sh | sed -e 's/\\/\\\\/g' | sed -e 's/\$/\\$/g')
 43.1195 -EOT
 43.1196 -}
 43.1197 -EOM
 43.1198 -		grep ^$package $file/fs/install/slack-desc | \
 43.1199 -			sed "s/^$package://" > $file/description.txt
 43.1200 -		[ -s $file/description.txt ] || rm -f $file/description.txt
 43.1201 -		rm -rf $file/fs/install
 43.1202 -		tazpkg pack $file
 43.1203 -		mv $file.tazpkg $TOP_DIR
 43.1204 -	else
 43.1205 -		eval_gettext "\$PACKAGE_FILE does not look like a Slackware package !"; echo
 43.1206 -	fi
 43.1207 -	cd $TOP_DIR
 43.1208 -	rm -rf $TMP_DIR
 43.1209 -}
 43.1210 -
 43.1211 -# convert a .deb package to .tazpkg
 43.1212 -convert_deb()
 43.1213 -{
 43.1214 -	mkdir -p $TMP_DIR
 43.1215 -	dpkg-deb -e $PACKAGE_FILE $TMP_DIR
 43.1216 -	package=$(grep '^ *Package' $TMP_DIR/control)
 43.1217 -	package=$(echo ${package##*:})
 43.1218 -	version=$(grep '^ *Version' $TMP_DIR/control)
 43.1219 -	version=$(echo ${version##*:})
 43.1220 -	descrip=$(grep '^ *Description' $TMP_DIR/control)
 43.1221 -	descrip=$(echo ${descrip##*:})
 43.1222 -	target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')"
 43.1223 -	case "$target" in
 43.1224 -	i386|all)
 43.1225 -		file="$package-$version"
 43.1226 -		mkdir -p $TMP_DIR/$file/fs/
 43.1227 -		dpkg-deb -x $PACKAGE_FILE $TMP_DIR/$file/fs
 43.1228 -		cd $TMP_DIR
 43.1229 -		cat > $file/receipt <<EOT
 43.1230 -# SliTaz package receipt.
 43.1231 -# generated by tazpkg from debian package $(basename $PACKAGE_FILE)
 43.1232 -PACKAGE="$package"
 43.1233 -VERSION="$version"
 43.1234 -CATEGORY="misc"
 43.1235 -SHORT_DESC="$descrip"
 43.1236 -WEB_SITE="http://packages.debian.org/search?keywords=$package"
 43.1237 -MAINTAINER="nobody@slitaz.org"
 43.1238 -DEPENDS="$(find_depends)"
 43.1239 -EOT
 43.1240 -		[ -s conffiles ] && cat >> $file/receipt <<EOT
 43.1241 -CONFIG_FILES="$(cat conffiles)"
 43.1242 -EOT
 43.1243 -		show_unresolved_lib $file/receipt
 43.1244 -		awk '
 43.1245 -{
 43.1246 -   if (/^ / && show) print substr($0,2);
 43.1247 -   else show=0;
 43.1248 -   if (/^Description/) show=1;
 43.1249 -}' < $TMP_DIR/control > $file/description.txt
 43.1250 -		sed -i 's/^\.$//' $file/description.txt
 43.1251 -		[ -s $file/description.txt ] || rm -f $file/description.txt
 43.1252 -		tazpkg pack $file
 43.1253 -		mv $file.tazpkg $TOP_DIR
 43.1254 -		;;
 43.1255 -	*)
 43.1256 -		gettext "Invalid target: $target (expected i386)"; echo
 43.1257 -		;;
 43.1258 -	esac
 43.1259 -	cd $TOP_DIR
 43.1260 -	rm -rf $TMP_DIR
 43.1261 -}
 43.1262 -
 43.1263 -# convert a .rpm package to .tazpkg
 43.1264 -convert_rpm()
 43.1265 -{
 43.1266 -	mkdir -p $TMP_DIR
 43.1267 -	cp $PACKAGE_FILE $TMP_DIR
 43.1268 -	PACKAGE_FILE=$TMP_DIR/$(basename $PACKAGE_FILE)
 43.1269 -	rpm -qip $PACKAGE_FILE | awk -v pkg=$(basename $PACKAGE_FILE) '
 43.1270 -BEGIN {
 43.1271 -	goturl=0;
 43.1272 -	printf "# Taz package receipt.\n";
 43.1273 -	printf "# generated by tazpkg from rpm package %s\n",pkg;
 43.1274 -}
 43.1275 -{
 43.1276 -	if (/^Name/) { name=$3; printf "PACKAGE=\"%s\"\n",$3; }
 43.1277 -	if (/^Version/) printf "VERSION=\"%s-",$3;
 43.1278 -	if (/^Release/) printf "%s\"\n",$3;
 43.1279 -	if (/^Summary/) printf "SHORT_DESC=\"%s\"\n",substr($0,15);
 43.1280 -	if (/^URL/) { goturl=1; printf "WEB_SITE=\"%s\"\n",$3; }
 43.1281 -}
 43.1282 -END {
 43.1283 -	if (goturl == 0)
 43.1284 -		printf "WEB_SITE=\"http://rpmfind.net/linux/rpm2html/search.php?query=%s\"\n",name;
 43.1285 -	printf "CATEGORY=\"misc\"\n";
 43.1286 -	printf "MAINTAINER=\"nobody@slitaz.org\"\n";
 43.1287 -}
 43.1288 -' > $TMP_DIR/receipt
 43.1289 -	. $TMP_DIR/receipt
 43.1290 -	file=$PACKAGE-$VERSION
 43.1291 -	mkdir -p $TMP_DIR/$file/fs/
 43.1292 -	mv $TMP_DIR/receipt $TMP_DIR/$file
 43.1293 -	rpm -qip $PACKAGE_FILE | awk '
 43.1294 -DEGIN { show=0 }
 43.1295 -{
 43.1296 -  if (show) print;
 43.1297 -  if (/^Description/) show=1;
 43.1298 -}
 43.1299 -' > $TMP_DIR/$file/description.txt
 43.1300 -	cd $TMP_DIR/$file/fs/
 43.1301 -	rpm2cpio $PACKAGE_FILE | cpio -idm
 43.1302 -	cd ../..
 43.1303 -	echo "DEPENDS=\"$(find_depends)\"" >> $TMP_DIR/$file/receipt
 43.1304 -	show_unresolved_lib $TMP_DIR/$file/receipt
 43.1305 -	tazpkg pack $file
 43.1306 -	mv $file.tazpkg $TOP_DIR
 43.1307 -	cd $TOP_DIR
 43.1308 -	rm -rf $TMP_DIR
 43.1309 -}
 43.1310 -
 43.1311 -update_desktop_database()
 43.1312 -{
 43.1313 -	if [ -f /usr/bin/update-desktop-database ] && [ -n "$updatedesktopdb" ]; then
 43.1314 -		update-desktop-database $1/usr/share/applications
 43.1315 -	fi
 43.1316 -}
 43.1317 -
 43.1318 -update_mime_database()
 43.1319 -{
 43.1320 -	if [ -f /usr/bin/update-desktop-database ] && [ -n "$updatemimedb" ]; then
 43.1321 -		update-mime-database $1/usr/share/mime
 43.1322 -	fi
 43.1323 -}
 43.1324 -
 43.1325 -###################
 43.1326 -# Tazpkg commands #
 43.1327 -###################
 43.1328 -
 43.1329 -case "$COMMAND" in
 43.1330 -	list)
 43.1331 -		# List all installed packages or a specific category.
 43.1332 -		#
 43.1333 -		if [ "$2" = "blocked" ]; then
 43.1334 -			echo ""
 43.1335 -			echo -e "\033[1m`gettext \"Blocked packages\"`\033[0m"
 43.1336 -			echo "================================================================================"
 43.1337 -			if [ -s "$BLOCKED" ];then
 43.1338 -				cat $BLOCKED
 43.1339 -			else
 43.1340 -				gettext "No blocked packages found."
 43.1341 -			fi
 43.1342 -			echo "" && exit 0
 43.1343 -		fi
 43.1344 -		# Display the list of categories.
 43.1345 -		if [ "$2" = "cat" -o "$2" = "categories" ]; then
 43.1346 -			echo ""
 43.1347 -			echo -e "\033[1m`gettext \"Packages categories\"`\033[0m"
 43.1348 -			echo "================================================================================"
 43.1349 -			for i in $CATEGORIES
 43.1350 -			do
 43.1351 -				echo $i
 43.1352 -				categories=$(($categories+1))
 43.1353 -			done
 43.1354 -			echo "================================================================================"
 43.1355 -			echo "$categories categories"
 43.1356 -			echo ""
 43.1357 -			exit 0
 43.1358 -		fi
 43.1359 -		# Check for an asked category.
 43.1360 -		if [ -n "$2" ]; then
 43.1361 -			ASKED_CATEGORY=$2
 43.1362 -			echo ""
 43.1363 -			echo -e "\033[1m`gettext \"Installed packages of category:\"`\033[0m $ASKED_CATEGORY"
 43.1364 -			echo "================================================================================"
 43.1365 -			for pkg in $INSTALLED/*
 43.1366 -			do
 43.1367 -				[ -f $pkg/receipt ] || continue
 43.1368 -				EXTRAVERSION=""
 43.1369 -				. $pkg/receipt
 43.1370 -				if [ "$CATEGORY" == "$ASKED_CATEGORY" ]; then
 43.1371 -					echo -n "$PACKAGE"
 43.1372 -					echo -e "\033[24G $VERSION$EXTRAVERSION"
 43.1373 -					packages=$(($packages+1))
 43.1374 -				fi
 43.1375 -			done
 43.1376 -			echo "================================================================================"
 43.1377 -			eval_gettext "\$packages packages installed of category \$ASKED_CATEGORY."; echo
 43.1378 -			echo ""
 43.1379 -		else
 43.1380 -			# By default list all packages and versions.
 43.1381 -			echo ""
 43.1382 -			echo -e "\033[1m`gettext \"List of all installed packages\"`\033[0m"
 43.1383 -			echo "================================================================================"
 43.1384 -			for pkg in $INSTALLED/*
 43.1385 -			do
 43.1386 -				[ -f $pkg/receipt ] || continue
 43.1387 -				EXTRAVERSION=""
 43.1388 -				. $pkg/receipt
 43.1389 -				echo -n "$PACKAGE"
 43.1390 -				echo -en "\033[24G $VERSION$EXTRAVERSION"
 43.1391 -				echo -e "\033[42G $CATEGORY"
 43.1392 -				packages=$(($packages+1))
 43.1393 -			done
 43.1394 -			echo "================================================================================"
 43.1395 -			eval_gettext "\$packages packages installed."; echo
 43.1396 -			echo ""
 43.1397 -		fi ;;
 43.1398 -	xhtml-list)
 43.1399 -		# Get info in receipts and build list.
 43.1400 -		DATE=`date +%Y-%m-%d\ \%H:%M:%S`
 43.1401 -		if [ -n "$2" ]; then
 43.1402 -			XHTML_LIST=$2
 43.1403 -		else
 43.1404 -			XHTML_LIST=installed-packages.html
 43.1405 -		fi
 43.1406 -		echo ""
 43.1407 -		echo -e "\033[1m`gettext \"Creating xHTML list of installed packages\"`\033[0m"
 43.1408 -		echo "================================================================================"
 43.1409 -		gettext "Generating xHTML header..."
 43.1410 -		xhtml_header
 43.1411 -		status
 43.1412 -		# Packages
 43.1413 -		gettext "Creating packages information..."
 43.1414 -		for pkg in $INSTALLED/*
 43.1415 -		do
 43.1416 -			[ -f $pkg/receipt ] || continue
 43.1417 -			EXTRAVERSION=""
 43.1418 -			. $pkg/receipt
 43.1419 -			xhtml_pkg_info
 43.1420 -			packages=$(($packages+1))
 43.1421 -		done
 43.1422 -		status
 43.1423 -		gettext "Generating xHTML footer..."
 43.1424 -		xhtml_footer
 43.1425 -		status
 43.1426 -		# sed pkgs nb in header.
 43.1427 -		sed -i s/'_packages_'/"$packages"/ $XHTML_LIST
 43.1428 -		echo "================================================================================"
 43.1429 -		eval_gettext "\$XHTML_LIST created - $packages packages."; echo
 43.1430 -		echo "" ;;
 43.1431 -	list-mirror)
 43.1432 -		# List all available packages on the mirror. Option --diff displays
 43.1433 -		# last mirrored packages diff (see recharge).
 43.1434 -		check_for_packages_list
 43.1435 -		case $2 in
 43.1436 -			--diff)
 43.1437 -				if [ -f "$LOCALSTATE/packages.diff" ]; then
 43.1438 -					echo ""
 43.1439 -					echo -e "\033[1m`gettext \"Mirrored packages diff\"`\033[0m"
 43.1440 -					echo "================================================================================"
 43.1441 -					cat $LOCALSTATE/packages.diff
 43.1442 -					echo "================================================================================"
 43.1443 -					pkgs=`cat $LOCALSTATE/packages.diff | wc -l`
 43.1444 -					eval_gettext "\$pkgs new packages listed on the mirror."; echo
 43.1445 -					echo ""
 43.1446 -				else
 43.1447 -					echo ""
 43.1448 -					gettext "Unable to list anything, no packages.diff found."; echo
 43.1449 -					gettext "Recharge your current list to create a first diff."; echo
 43.1450 -					echo ""
 43.1451 -				fi && exit 0 ;;
 43.1452 -			--text|--txt)
 43.1453 -				echo ""
 43.1454 -				echo -e "\033[1m`gettext \"List of available packages on the mirror\"`\033[0m"
 43.1455 -				echo "================================================================================"
 43.1456 -				cat $LOCALSTATE/packages.txt ;;
 43.1457 -			--raw|*)
 43.1458 -				echo ""
 43.1459 -				echo -e "\033[1m`gettext \"List of available packages on the mirror\"`\033[0m"
 43.1460 -				echo "================================================================================"
 43.1461 -				cat $LOCALSTATE/packages.list ;;
 43.1462 -		esac
 43.1463 -		echo "================================================================================"
 43.1464 -		pkgs=`cat $LOCALSTATE/packages.list | wc -l`
 43.1465 -		eval_gettext "\$pkgs packages in the last recharged list."; echo
 43.1466 -		echo "" ;;
 43.1467 -	list-files)
 43.1468 -		# List files installed with the package.
 43.1469 -		#
 43.1470 -		check_for_package_on_cmdline
 43.1471 -		check_for_receipt
 43.1472 -		echo ""
 43.1473 -		echo -e "\033[1m`gettext \"Installed files with:\"`\033[0m $PACKAGE"
 43.1474 -		echo "================================================================================"
 43.1475 -		cat $INSTALLED/$PACKAGE/files.list | sort
 43.1476 -		echo "================================================================================"
 43.1477 -		files=`cat $INSTALLED/$PACKAGE/files.list | wc -l`
 43.1478 -		echo "$files files installed with $PACKAGE."
 43.1479 -		echo "" ;;
 43.1480 -	info)
 43.1481 -		# Information about package.
 43.1482 -		#
 43.1483 -		check_for_package_on_cmdline
 43.1484 -		check_for_receipt
 43.1485 -		EXTRAVERSION=""
 43.1486 -		. $INSTALLED/$PACKAGE/receipt
 43.1487 -		echo ""
 43.1488 -		echo -e "\033[1m`gettext \"Tazpkg information\"`\033[0m
 43.1489 -================================================================================
 43.1490 -Package    : $PACKAGE
 43.1491 -Version    : $VERSION$EXTRAVERSION
 43.1492 -Category   : $CATEGORY
 43.1493 -Short desc : $SHORT_DESC
 43.1494 -Maintainer : $MAINTAINER"
 43.1495 -		if [ ! "$DEPENDS" = "" ]; then
 43.1496 -			echo -e "Depends    : $DEPENDS"
 43.1497 -		fi
 43.1498 -		if [ ! "$SUGGESTED" = "" ]; then
 43.1499 -			echo -e "Suggested  : $SUGGESTED"
 43.1500 -		fi
 43.1501 -		if [ ! "$BUILD_DEPENDS" = "" ]; then
 43.1502 -			echo -e "Build deps : $BUILD_DEPENDS"
 43.1503 -		fi
 43.1504 -		if [ ! "$WANTED" = "" ]; then
 43.1505 -			echo -e "Wanted src : $WANTED"
 43.1506 -		fi
 43.1507 -		if [ ! "$WEB_SITE" = "" ]; then
 43.1508 -			echo -e "Web site   : $WEB_SITE"
 43.1509 -		fi
 43.1510 -		echo "================================================================================"
 43.1511 -		echo "" ;;
 43.1512 -	desc)
 43.1513 -		# Display package description.txt if available.
 43.1514 -		if [ -f "$INSTALLED/$PACKAGE/description.txt" ]; then
 43.1515 -			echo ""
 43.1516 -			echo -e "\033[1m`gettext \"Description of:\"`\033[0m $PACKAGE"
 43.1517 -			echo "================================================================================"
 43.1518 -			cat $INSTALLED/$PACKAGE/description.txt
 43.1519 -			echo "================================================================================"
 43.1520 -			echo ""
 43.1521 -		else
 43.1522 -			echo ""
 43.1523 -			gettext "Sorry, no description available for this package."; echo
 43.1524 -			echo ""
 43.1525 -		fi ;;
 43.1526 -	search)
 43.1527 -		# Search for a package by pattern or name.
 43.1528 -		#
 43.1529 -		PATTERN="$2"
 43.1530 -		if [ -z "$PATTERN" ]; then
 43.1531 -			echo ""
 43.1532 -			gettext "Please specify a pattern or package name to search for."; echo
 43.1533 -			gettext "Example : 'tazpkg search paint'"; echo
 43.1534 -			echo ""
 43.1535 -			exit 0
 43.1536 -		fi
 43.1537 -		echo ""
 43.1538 -		echo -e "\033[1m`gettext \"Search result for:\"`\033[0m $PATTERN"
 43.1539 -		echo ""
 43.1540 -		# Default is to search in installed pkgs and the raw list.
 43.1541 -		case $3 in
 43.1542 -			-i|--installed)
 43.1543 -				search_in_installed_packages ;;
 43.1544 -			-l|--list)
 43.1545 -				search_in_packages_list ;;
 43.1546 -			-m|--mirror)
 43.1547 -				search_in_packages_txt ;;
 43.1548 -			*)
 43.1549 -				search_in_installed_packages
 43.1550 -				search_in_packages_list ;;
 43.1551 -		esac ;;
 43.1552 -	search-file)
 43.1553 -		# Search for a file by pattern or name in all files.list.
 43.1554 -		#
 43.1555 -		if [ -z "$2" ]; then
 43.1556 -			echo ""
 43.1557 -			gettext "Please specify a pattern or file name to search for."; echo
 43.1558 -			gettext "Example : 'tazpkg search-file libnss'"; echo
 43.1559 -			echo ""
 43.1560 -			exit 0
 43.1561 -		fi
 43.1562 -		echo ""
 43.1563 -		echo -e "\033[1m`gettext \"Search result for file\"`\033[0m $2"
 43.1564 -		echo "================================================================================"
 43.1565 -
 43.1566 -		if [ "$3" == "--mirror" ]; then
 43.1567 -
 43.1568 -			match=0
 43.1569 -			for i in $LOCALSTATE/files.list.lzma \
 43.1570 -				 $LOCALSTATE/undigest/*/files.list.lzma; do
 43.1571 -				 [ -f $i ] || continue
 43.1572 -				unlzma -c $i | grep -- ".*:.*$2" | awk '
 43.1573 -                            BEGIN { last="" }
 43.1574 -                            {
 43.1575 -			    	pkg=substr($0,0,index($0,":")-1);
 43.1576 -			    	file=substr($0,index($0,":")+2);
 43.1577 -                                if (last != pkg) {
 43.1578 -				    last = pkg;
 43.1579 -				    printf("\n%c[1mPackage %s :%c[0m\n",27,pkg,27);
 43.1580 -				}
 43.1581 -                                printf("%s\n",file);
 43.1582 -                            }'
 43.1583 -				match=$(($match + `unlzma -c $i | grep -- ".*:.*$2" | wc -l`))
 43.1584 -			done
 43.1585 -
 43.1586 -		else
 43.1587 -
 43.1588 -		# Check all pkg files.list in search match with specify the package
 43.1589 -		# name and the full path to the file(s).
 43.1590 -		for pkg in $INSTALLED/*
 43.1591 -		do
 43.1592 -			if grep -qs "$2" $pkg/files.list; then
 43.1593 -				. $pkg/receipt
 43.1594 -				echo ""
 43.1595 -				echo -e "\033[1m`gettext \"Package\"` $PACKAGE:\033[0m"
 43.1596 -				grep "$2" $pkg/files.list
 43.1597 -				files=`grep $2 $pkg/files.list | wc -l`
 43.1598 -				match=$(($match+$files))
 43.1599 -			fi
 43.1600 -		done
 43.1601 -
 43.1602 -		fi
 43.1603 -		pkg=$2
 43.1604 -		if [ "$match" = "" ]; then
 43.1605 -			eval_gettext "0 file found for: \$pkg"; echo
 43.1606 -			echo ""
 43.1607 -		else
 43.1608 -			echo ""
 43.1609 -			echo "================================================================================"
 43.1610 -			eval_gettext "\$match file(s) found for: \$pkg"; echo
 43.1611 -			echo ""
 43.1612 -		fi ;;
 43.1613 -	search-pkgname) 
 43.1614 -		# Search for a package name
 43.1615 -		if [ -z "$2" ]; then
 43.1616 -			echo ""
 43.1617 -			gettext "Please specify a pattern or file name to search for."; echo
 43.1618 -			gettext "Example : 'tazpkg search-pkgname libnss'"; echo
 43.1619 -			echo ""
 43.1620 -			exit 0
 43.1621 -		fi
 43.1622 -		echo ""
 43.1623 -		echo -e "\033[1m`gettext \"Search result for file\"`\033[0m $2"
 43.1624 -		echo "================================================================================"
 43.1625 -       
 43.1626 -	 # Search for a file on mirror and output only the package name
 43.1627 -		match=0
 43.1628 -		for i in $LOCALSTATE/files.list.lzma \
 43.1629 -				 $LOCALSTATE/undigest/*/files.list.lzma; do
 43.1630 -				 [ -f $i ] || continue
 43.1631 -				unlzma -c $i | grep -- ".*:.*$2" | cut -d: -f1 | uniq | awk '{ print $1 }'
 43.1632 -				match=$(($match + `unlzma -c $i | grep -- ".*:.*$2" | cut -d: -f1 | uniq | wc -l`))
 43.1633 -		done
 43.1634 -		file=$2
 43.1635 -		if [ "$match" = "" ]; then
 43.1636 -			eval_gettext "0 file found for : \$file"; echo
 43.1637 -			echo ""
 43.1638 -		else
 43.1639 -			echo ""
 43.1640 -			echo "================================================================================"
 43.1641 -			eval_gettext "$match pkg(s) found with file: \$file"; echo
 43.1642 -			echo ""
 43.1643 -		fi
 43.1644 -		;;
 43.1645 -	install)
 43.1646 -		# Install .tazpkg packages.
 43.1647 -		#
 43.1648 -		check_root
 43.1649 -		check_for_package_on_cmdline
 43.1650 -		check_for_package_file
 43.1651 -		# Check if forced install.
 43.1652 -		DO_CHECK="yes"
 43.1653 -		ROOT=""
 43.1654 -		while [ -n "$3" ]; do
 43.1655 -			case "$3" in
 43.1656 -			--forced)
 43.1657 -				DO_CHECK="no"
 43.1658 -				;;
 43.1659 -			--root=*)
 43.1660 -				ROOT="${3#--root=}"
 43.1661 -				;;
 43.1662 -			--list=*)
 43.1663 -				INSTALL_LIST="${3#--list=}"
 43.1664 -				;;
 43.1665 -			*)	shift 2
 43.1666 -				echo -e "\nUnknown option $*.\n"
 43.1667 -				exit 1
 43.1668 -				;;
 43.1669 -			esac
 43.1670 -			shift
 43.1671 -		done
 43.1672 -		if [ "$DO_CHECK" = "yes" ]; then
 43.1673 -			check_for_installed_package $ROOT
 43.1674 -		fi
 43.1675 -		install_package $ROOT
 43.1676 -		update_desktop_database $ROOT
 43.1677 -		update_mime_database $ROOT ;;
 43.1678 -	install-list|get-install-list)
 43.1679 -		# Install a set of packages from a list.
 43.1680 -		#
 43.1681 -		check_root
 43.1682 -		if [ -z "$2" ]; then
 43.1683 -			echo ""
 43.1684 -			gettext \
 43.1685 -"Please change directory (cd) to the packages repository and specify the
 43.1686 -list of packages to install. Example : tazpkg install-list packages.list"
 43.1687 -			echo "" && exit 0
 43.1688 -		fi
 43.1689 -		# Check if the packages list exist.
 43.1690 -		list_file=$2
 43.1691 -		if [ ! -f "$list_file" ]; then
 43.1692 -			gettext "Unable to find : $list_file"; echo
 43.1693 -			exit 0
 43.1694 -		else
 43.1695 -			LIST=`cat $2`
 43.1696 -		fi
 43.1697 -
 43.1698 -		# Remember processed list
 43.1699 -		export INSTALL_LIST="$2"
 43.1700 -
 43.1701 -		# Set $COMMAND and install all packages.
 43.1702 -		if [ "$1" = "get-install-list" ]; then
 43.1703 -			COMMAND=get-install
 43.1704 -		else
 43.1705 -			COMMAND=install
 43.1706 -		fi
 43.1707 -		touch $2-processed
 43.1708 -
 43.1709 -		# Upgrade tazpkg first. It may handle new features/formats...
 43.1710 -		# then upgrade essential packages early
 43.1711 -		for pkg in busybox-pam busybox gcc-lib-base glibc-base \
 43.1712 -			   slitaz-base-files tazpkg ; do
 43.1713 -			pkg=$(egrep $pkg-[0-9] $INSTALL_LIST)
 43.1714 -			[ -n "$pkg" ] || continue
 43.1715 -			echo "Adding implicit depends $pkg ..."
 43.1716 -			LIST="$pkg
 43.1717 -$LIST"
 43.1718 -		done
 43.1719 -
 43.1720 -		for pkg in $LIST
 43.1721 -		do
 43.1722 -			grep -qs ^$pkg$ $2-processed && continue
 43.1723 -			tazpkg $COMMAND $pkg --list=$2 "$3" "$4" "$5"
 43.1724 -		done
 43.1725 -		rm -f $2-processed ;;
 43.1726 -	add-flavor)
 43.1727 -		# Install a set of packages from a flavor.
 43.1728 -		#
 43.1729 -		install_flavor $2 ;;
 43.1730 -	install-flavor)
 43.1731 -		# Install a set of packages from a flavor and purge other ones.
 43.1732 -		#
 43.1733 -		install_flavor $2 --purge ;;
 43.1734 -	set-release)
 43.1735 -		# Change curent release and upgrade packages.
 43.1736 -		#
 43.1737 -		RELEASE=$2
 43.1738 -		if [ -z "$RELEASE" ]; then
 43.1739 -			echo ""
 43.1740 -			gettext "Please specify the release you want on the command line."; echo
 43.1741 -			gettext "Example: tazpkg set-release cooking"; echo
 43.1742 -			echo ""
 43.1743 -			exit 0
 43.1744 -		fi
 43.1745 -		rm /var/lib/tazpkg/mirror
 43.1746 -		echo "$RELEASE" > /etc/slitaz-release
 43.1747 -		tazpkg recharge && tazpkg upgrade
 43.1748 -
 43.1749 -		# Install missing depends
 43.1750 -		cd $INSTALLED
 43.1751 -		for i in * ; do
 43.1752 -			DEPENDS=""
 43.1753 -			. $i/receipt
 43.1754 -			for j in $DEPENDS ; do
 43.1755 -				[ -d $j ] || tazpkg get-install $j
 43.1756 -			done
 43.1757 -		done ;;
 43.1758 -	remove)
 43.1759 -		# Remove packages.
 43.1760 -		#
 43.1761 -		check_root
 43.1762 -		check_for_package_on_cmdline
 43.1763 -		ROOT=""
 43.1764 -		while [ -n "$3" ]; do
 43.1765 -			case "$3" in
 43.1766 -			--root=*)
 43.1767 -				ROOT="${3#--root=}"
 43.1768 -				if [ "$ROOT" ]; then
 43.1769 -					ROOTOPTS="--root=$ROOT"
 43.1770 -				else
 43.1771 -					ROOTOPTS=""
 43.1772 -				fi
 43.1773 -				;;
 43.1774 -			*)	shift 2
 43.1775 -				echo -e "\nUnknown option $*.\n"
 43.1776 -				exit 1
 43.1777 -				;;
 43.1778 -			esac
 43.1779 -			shift
 43.1780 -		done
 43.1781 -		if [ ! -f "$ROOT$INSTALLED/$PACKAGE/receipt" ]; then
 43.1782 -			echo ""
 43.1783 -			eval_gettext "\$PACKAGE is not installed."; echo
 43.1784 -			exit 0
 43.1785 -		else
 43.1786 -			ALTERED=""
 43.1787 -			THE_PACKAGE=$PACKAGE	# altered by receipt
 43.1788 -			for i in $(cd $ROOT$INSTALLED ; ls); do
 43.1789 -				[ -f $ROOT$INSTALLED/$i/receipt ] || continue
 43.1790 -				DEPENDS=""
 43.1791 -				. $ROOT$INSTALLED/$i/receipt
 43.1792 -				case " $(echo $DEPENDS) " in
 43.1793 -				*\ $THE_PACKAGE\ *) ALTERED="$ALTERED $i";;
 43.1794 -				esac
 43.1795 -			done
 43.1796 -			EXTRAVERSION=""
 43.1797 -			. $ROOT$INSTALLED/$THE_PACKAGE/receipt
 43.1798 -		fi
 43.1799 -		echo ""
 43.1800 -		if [ -n "$ALTERED" ]; then
 43.1801 -			eval_gettext "The following packages depend on \$PACKAGE:"; echo
 43.1802 -			for i in $ALTERED; do
 43.1803 -				echo "  $i"
 43.1804 -			done
 43.1805 -		fi
 43.1806 -		REFRESH=$(cd $ROOT$INSTALLED ; grep -sl ^$PACKAGE$ */modifiers)
 43.1807 -		if [ -n "$REFRESH" ]; then
 43.1808 -			eval_gettext "The following packages have been modified by \$PACKAGE:"; echo
 43.1809 -			for i in $REFRESH; do
 43.1810 -				echo "  ${i%/modifiers}"
 43.1811 -			done
 43.1812 -		fi
 43.1813 -		eval_gettext "Remove \$PACKAGE (\$VERSION\$EXTRAVERSION) ?"; echo
 43.1814 -		gettext "Please confirm uninstallation (y/N) : "; read anser
 43.1815 -		if [ "$anser" = "y" ]; then
 43.1816 -			echo ""
 43.1817 -			echo -e "\033[1m`gettext \"Removing:\"`\033[0m $PACKAGE"
 43.1818 -			echo "================================================================================"
 43.1819 -			# Pre remove commands.
 43.1820 -			if grep -q ^pre_remove $ROOT$INSTALLED/$PACKAGE/receipt; then
 43.1821 -				pre_remove
 43.1822 -			fi
 43.1823 -			gettext "Removing all files installed..."
 43.1824 -			if [ -f $ROOT$INSTALLED/$PACKAGE/modifiers ]; then
 43.1825 -			    for mod in `cat $ROOT$INSTALLED/$PACKAGE/modifiers`
 43.1826 -			    do
 43.1827 -				for file in `cat $ROOT$INSTALLED/$PACKAGE/files.list`
 43.1828 -				do
 43.1829 -					[ $(grep "^$(echo $file | grepesc)$" $ROOT$INSTALLED/$mod/files.list | wc -l) -gt 1 ] && continue
 43.1830 -					remove_with_path $ROOT$file
 43.1831 -				done
 43.1832 -			    done
 43.1833 -			else
 43.1834 -				for file in `cat $ROOT$INSTALLED/$PACKAGE/files.list`
 43.1835 -				do
 43.1836 -					remove_with_path $ROOT$file
 43.1837 -				done
 43.1838 -			fi
 43.1839 -			status
 43.1840 -			if grep -q ^post_remove $ROOT$INSTALLED/$PACKAGE/receipt; then
 43.1841 -				post_remove
 43.1842 -			fi
 43.1843 -			# Remove package receipt.
 43.1844 -			gettext "Removing package receipt..."
 43.1845 -			rm -rf $ROOT$INSTALLED/$PACKAGE
 43.1846 -			status
 43.1847 -			sed -i "/ $PACKAGE-$VERSION$EXTRAVERSION$/d" \
 43.1848 -				$LOCALSTATE/installed.md5 2> /dev/null
 43.1849 -			# Log this activity
 43.1850 -			log Removed
 43.1851 -			if [ -n "$ALTERED" ]; then
 43.1852 -				eval_gettext "Remove packages depending on \$PACKAGE"
 43.1853 -				echo -n " (y/N) ? "; read anser
 43.1854 -				if [ "$anser" = "y" ]; then
 43.1855 -					for i in $ALTERED; do
 43.1856 -						if [ -d "$ROOT$INSTALLED/$i" ]; then
 43.1857 -							tazpkg remove $i $ROOTOPTS
 43.1858 -						fi
 43.1859 -					done
 43.1860 -				fi
 43.1861 -			fi
 43.1862 -			if [ -n "$REFRESH" ]; then
 43.1863 -				eval_gettext "Reinstall packages modified by \$PACKAGE"
 43.1864 -				echo -n " (y/N) ? "; read anser
 43.1865 -				if [ "$anser" = "y" ]; then
 43.1866 -					for i in $REFRESH; do
 43.1867 -						if [ $(wc -l < $ROOT$INSTALLED/$i) -gt 1 ]; then
 43.1868 -							eval_gettext "Check \$INSTALLED/\$i for reinstallation"; echo
 43.1869 -							continue
 43.1870 -						fi
 43.1871 -						rm -r $ROOT$INSTALLED/$i
 43.1872 -						tazpkg get-install ${i%/modifiers} $ROOTOPTS --forced
 43.1873 -					done
 43.1874 -				fi
 43.1875 -			fi
 43.1876 -		else
 43.1877 -			echo ""
 43.1878 -			eval_gettext "Uninstallation of \$PACKAGE cancelled."; echo
 43.1879 -		fi
 43.1880 -		echo "" ;;
 43.1881 -	extract)
 43.1882 -		# Extract .tazpkg cpio archive into a directory.
 43.1883 -		#
 43.1884 -		check_for_package_on_cmdline
 43.1885 -		check_for_package_file
 43.1886 -		echo ""
 43.1887 -		echo -e "\033[1m`gettext \"Extracting:\"`\033[0m $PACKAGE"
 43.1888 -		echo "================================================================================"
 43.1889 -		# If no directory destination is found on the cmdline
 43.1890 -		# we create one in the current dir using the package name.
 43.1891 -		if [ -n "$TARGET_DIR" ]; then
 43.1892 -			DESTDIR=$TARGET_DIR/$PACKAGE
 43.1893 -		else
 43.1894 -			DESTDIR=$PACKAGE
 43.1895 -		fi
 43.1896 -		mkdir -p $DESTDIR
 43.1897 -		gettext "Copying original package..."
 43.1898 -		cp $PACKAGE_FILE $DESTDIR
 43.1899 -		status
 43.1900 -		cd $DESTDIR
 43.1901 -		extract_package
 43.1902 -		echo "================================================================================"
 43.1903 -		eval_gettext "\$PACKAGE is extracted to: \$DESTDIR"; echo
 43.1904 -		echo "" ;;
 43.1905 -	recompress)
 43.1906 -		# Recompress .tazpkg cpio archive with lzma.
 43.1907 -		#
 43.1908 -		check_for_package_on_cmdline
 43.1909 -		check_for_package_file
 43.1910 -		echo ""
 43.1911 -		echo -e "\033[1m`gettext \"Recompressing:\"`\033[0m $PACKAGE"
 43.1912 -		echo "================================================================================"
 43.1913 -		mkdir -p $TMP_DIR
 43.1914 -		gettext "Copying original package..."
 43.1915 -		cp $PACKAGE_FILE $TMP_DIR
 43.1916 -		status
 43.1917 -		cd $TMP_DIR
 43.1918 -		extract_package
 43.1919 -		gettext "Recompressing the fs... "
 43.1920 -		find fs | cpio -o -H newc 2> /dev/null | lzma e fs.cpio.lzma -si
 43.1921 -		rm -rf fs
 43.1922 -		status
 43.1923 -		gettext "Creating new package... "
 43.1924 -		find . -print | cpio -o -H newc > \
 43.1925 -			$TOP_DIR/$(basename $PACKAGE_FILE).$$ && mv -f \
 43.1926 -			$TOP_DIR/$(basename $PACKAGE_FILE).$$ \
 43.1927 -			$TOP_DIR/$(basename $PACKAGE_FILE)
 43.1928 -		status
 43.1929 -		cd $TOP_DIR
 43.1930 -		rm -rf $TMP_DIR ;;
 43.1931 -	list-config)
 43.1932 -		# List configuration files installed.
 43.1933 -		#
 43.1934 -		if [ "$2" = "--box" ]; then
 43.1935 -			mkdir -p $TMP_DIR && cd $TMP_DIR
 43.1936 -			FILES="$INSTALLED/*/volatile.cpio.gz"
 43.1937 -			[ -n "$3" ] && FILES="$INSTALLED/$3/volatile.cpio.gz"
 43.1938 -			for i in $FILES; do
 43.1939 -				zcat $i | cpio -idm > /dev/null
 43.1940 -				find * -type f 2>/dev/null | while read file; do
 43.1941 -					if [ ! -e /$file ]; then
 43.1942 -					echo -n "|--|--|--|File lost"
 43.1943 -					else
 43.1944 -					echo -n "$(stat -c "%A|%U|%G|%s|" /$file)"
 43.1945 -					cmp $file /$file > /dev/null 2>&1 || \
 43.1946 -						echo -n "$(stat -c "%.16y" /$file)"
 43.1947 -					fi
 43.1948 -					echo "|/$file"
 43.1949 -				done
 43.1950 -				rm -rf *
 43.1951 -			done
 43.1952 -			cd $TOP_DIR
 43.1953 -			rm -rf $TMP_DIR
 43.1954 -		else
 43.1955 -			echo ""
 43.1956 -			echo -e "\033[1m`gettext \"Configuration files\"`"
 43.1957 -			echo "================================================================================"
 43.1958 -			for i in $INSTALLED/*/volatile.cpio.gz; do
 43.1959 -				[ -n "$2" -a "$i" != "$INSTALLED/$2/volatile.cpio.gz" ] && continue
 43.1960 -				[ -f "$i" ] || continue
 43.1961 -				zcat $i | cpio -t | grep -v "[0-9]* blocks"
 43.1962 -			done | sed 's|^|/|' | sort
 43.1963 -			echo "================================================================================"
 43.1964 -			echo ""
 43.1965 -		fi ;;
 43.1966 -	repack-config)
 43.1967 -		# Create SliTaz package archive from configuration files.
 43.1968 -		#
 43.1969 -		mkdir -p $TMP_DIR && cd $TMP_DIR
 43.1970 -		CONFIG_VERSION=1.0
 43.1971 -		mkdir config-$CONFIG_VERSION
 43.1972 -		cd config-$CONFIG_VERSION
 43.1973 -		for i in $INSTALLED/*/volatile.cpio.gz; do
 43.1974 -			zcat $i | cpio -t | grep -v "[0-9]* blocks"
 43.1975 -		done > files.list
 43.1976 -		mkdir fs
 43.1977 -		cd fs
 43.1978 -		( cd / ; cpio -o -H newc ) < ../files.list | cpio -idm > /dev/null
 43.1979 -		mkdir -p etc/tazlito
 43.1980 -		for i in $INSTALLED/*/receipt; do
 43.1981 -			EXTRAVERSION=""
 43.1982 -			. $i
 43.1983 -			echo "$PACKAGE-$VERSION$EXTRAVERSION"
 43.1984 -		done > etc/tazlito/config-packages.list
 43.1985 -		cd ..
 43.1986 -		echo "etc/tazlito/config-packages.list" >> files.list
 43.1987 -		cat > receipt <<EOT
 43.1988 -# SliTaz package receipt.
 43.1989 -
 43.1990 -PACKAGE="config"
 43.1991 -VERSION="$CONFIG_VERSION"
 43.1992 -CATEGORY="base-system"
 43.1993 -SHORT_DESC="User configuration backup on $(date)"
 43.1994 -DEPENDS="$(ls $INSTALLED)"
 43.1995 -EOT
 43.1996 -		cd ..
 43.1997 -		tazpkg pack config-$CONFIG_VERSION
 43.1998 -		cp config-$CONFIG_VERSION.tazpkg $TOP_DIR
 43.1999 -		cd $TOP_DIR
 43.2000 -		rm -rf $TMP_DIR
 43.2001 -		;;
 43.2002 -	repack)
 43.2003 -		# Create SliTaz package archive from an installed package.
 43.2004 -		#
 43.2005 -		check_for_package_on_cmdline
 43.2006 -		check_for_receipt
 43.2007 -		EXTRAVERSION=""
 43.2008 -		. $INSTALLED/$PACKAGE/receipt
 43.2009 -		echo ""
 43.2010 -		echo -e "\033[1mRepacking :\033[0m $PACKAGE-$VERSION$EXTRAVERSION.tazpkg"
 43.2011 -		echo "================================================================================"
 43.2012 -		if grep -qs ^NO_REPACK= $INSTALLED/$PACKAGE/receipt; then
 43.2013 -			echo "Can't repack $PACKAGE"
 43.2014 -			exit 1
 43.2015 -		fi
 43.2016 -		if [ -s $INSTALLED/$PACKAGE/modifiers ]; then
 43.2017 -			eval_gettext "Can't repack, \$PACKAGE files have been modified by:"; echo
 43.2018 -			for i in $(cat $INSTALLED/$PACKAGE/modifiers); do
 43.2019 -				echo "  $i"
 43.2020 -			done
 43.2021 -			exit 1
 43.2022 -		fi
 43.2023 -		MISSING=""
 43.2024 -		while read i; do
 43.2025 -			[ -e "$i" ] && continue
 43.2026 -			[ -L "$i" ] || MISSING="$MISSING\n  $i"
 43.2027 -		done < $INSTALLED/$PACKAGE/files.list
 43.2028 -		if [ -n "$MISSING" ]; then
 43.2029 -			gettext "Can't repack, the following files are lost:"
 43.2030 -			echo -e "$MISSING"
 43.2031 -			exit 1
 43.2032 -		fi
 43.2033 -		mkdir -p $TMP_DIR && cd $TMP_DIR
 43.2034 -		FILES="fs.cpio.lzma\n"
 43.2035 -		for i in $(ls $INSTALLED/$PACKAGE) ; do
 43.2036 -			[ "$i" = "volatile.cpio.gz" ] && continue
 43.2037 -			[ "$i" = "modifiers" ] && continue
 43.2038 -			cp $INSTALLED/$PACKAGE/$i . && FILES="$FILES$i\n"
 43.2039 -		done
 43.2040 -		ln -s / rootfs
 43.2041 -		mkdir tmp
 43.2042 -		sed 's/^/rootfs/' < files.list | cpio -o -H newc 2>/dev/null |\
 43.2043 -		      ( cd tmp ; cpio -idm >/dev/null )
 43.2044 -		mv tmp/rootfs fs
 43.2045 -		if [ -f $INSTALLED/$PACKAGE/volatile.cpio.gz ]; then
 43.2046 -			zcat $INSTALLED/$PACKAGE/volatile.cpio.gz | \
 43.2047 -				( cd fs; cpio -idm )
 43.2048 -		fi
 43.2049 -		if grep -q repack_cleanup $INSTALLED/$PACKAGE/receipt; then
 43.2050 -			. $INSTALLED/$PACKAGE/receipt
 43.2051 -			repack_cleanup fs
 43.2052 -		fi
 43.2053 -		if [ -f $INSTALLED/$PACKAGE/md5sum ]; then
 43.2054 -			sed 's,  ,  fs,' < $INSTALLED/$PACKAGE/md5sum | \
 43.2055 -			md5sum -s -c || {
 43.2056 -				echo "Can't repack, md5sum error."
 43.2057 -				cd $TOP_DIR
 43.2058 -				rm -rf $TMP_DIR
 43.2059 -				exit 1
 43.2060 -			}
 43.2061 -		fi
 43.2062 -		find fs | cpio -o -H newc 2> /dev/null | lzma e fs.cpio.lzma -si
 43.2063 -		echo -e "$FILES" | cpio -o -H newc 2> /dev/null > \
 43.2064 -			$TOP_DIR/$PACKAGE-$VERSION$EXTRAVERSION.tazpkg
 43.2065 -		cd $TOP_DIR
 43.2066 -		\rm -R $TMP_DIR
 43.2067 -		eval_gettext "Package \$PACKAGE repacked successfully."; echo
 43.2068 -		echo "Size : `du -sh $PACKAGE-$VERSION$EXTRAVERSION.tazpkg`"
 43.2069 -		echo "" ;;
 43.2070 -	pack)
 43.2071 -		# Create SliTaz package archive using cpio and gzip.
 43.2072 -		#
 43.2073 -		check_for_package_on_cmdline
 43.2074 -		cd $PACKAGE
 43.2075 -		if [ ! -f "receipt" ]; then
 43.2076 -			gettext "Receipt is missing. Please read the documentation."; echo
 43.2077 -			exit 0
 43.2078 -		else
 43.2079 -			echo ""
 43.2080 -			echo -e "\033[1mPacking :\033[0m $PACKAGE"
 43.2081 -			echo "================================================================================"
 43.2082 -			# Create files.list with redirecting find outpout.
 43.2083 -			gettext "Creating the list of files..." && cd fs
 43.2084 -			find . -type f -print > ../files.list
 43.2085 -			find . -type l -print >> ../files.list
 43.2086 -			cd .. && sed -i s/'^.'/''/ files.list
 43.2087 -			status
 43.2088 -			gettext "Creating md5sum of files..."
 43.2089 -			while read file; do
 43.2090 -				[ -L "fs$file" ] && continue
 43.2091 -				[ -f "fs$file" ] || continue
 43.2092 -				case "$file" in
 43.2093 -				/lib/modules/*/modules.*|*.pyc) continue;;
 43.2094 -				esac
 43.2095 -				md5sum "fs$file" | sed 's/  fs/  /'
 43.2096 -			done < files.list > md5sum
 43.2097 -			status
 43.2098 -			UNPACKED_SIZE=$(du -chs fs receipt files.list md5sum \
 43.2099 -				description.txt 2> /dev/null | awk \
 43.2100 -				'{ sz=$1 } END { print sz }')
 43.2101 -			# Build cpio archives.
 43.2102 -			gettext "Compressing the fs... "
 43.2103 -			find fs | cpio -o -H newc | lzma e fs.cpio.lzma -si
 43.2104 -			rm -rf fs
 43.2105 -			status
 43.2106 -			PACKED_SIZE=$(du -chs fs.cpio.lzma receipt files.list \
 43.2107 -				md5sum description.txt 2> /dev/null | awk \
 43.2108 -				'{ sz=$1 } END { print sz }')
 43.2109 -			gettext "Updating receipt sizes..."
 43.2110 -			sed -i s/^PACKED_SIZE.*$// receipt
 43.2111 -			sed -i s/^UNPACKED_SIZE.*$// receipt
 43.2112 -			sed -i "s/^PACKAGE=/PACKED_SIZE=\"$PACKED_SIZE\"\nUNPACKED_SIZE=\"$UNPACKED_SIZE\"\nPACKAGE=/" receipt
 43.2113 -			status
 43.2114 -			gettext "Creating full cpio archive... "
 43.2115 -			find . -print | cpio -o -H newc > ../$PACKAGE.tazpkg
 43.2116 -			status
 43.2117 -			gettext "Restoring original package tree... "
 43.2118 -			unlzma -c fs.cpio.lzma | cpio -idm
 43.2119 -			status
 43.2120 -			rm fs.cpio.lzma && cd ..
 43.2121 -			echo "================================================================================"
 43.2122 -			eval_gettext "Package \$PACKAGE compressed successfully."; echo
 43.2123 -			echo "Size : `du -sh $PACKAGE.tazpkg`"
 43.2124 -			echo ""
 43.2125 -		fi ;;
 43.2126 -	recharge)
 43.2127 -		# Recharge packages.list from a mirror.
 43.2128 -		#
 43.2129 -		check_root
 43.2130 -		for path in $LOCALSTATE $LOCALSTATE/undigest/*; do
 43.2131 -			[ -f $path/mirror ] || continue
 43.2132 -			echo ""
 43.2133 -			if [ "$path" != "$LOCALSTATE" ]; then
 43.2134 -				echo "Recharging undigest $(basename $path):"
 43.2135 -			fi
 43.2136 -			cd $path
 43.2137 -			if [ -f "packages.list" ]; then
 43.2138 -				gettext "Creating backup of the last packages list..."
 43.2139 -				mv -f packages.desc packages.desc.bak 2>/dev/null
 43.2140 -				mv -f packages.md5 packages.md5.txt 2>/dev/null
 43.2141 -				mv -f packages.txt packages.txt.bak 2>/dev/null
 43.2142 -				mv -f packages.list packages.list.bak 2>/dev/null
 43.2143 -				mv -f packages.equiv packages.equiv.bak 2>/dev/null
 43.2144 -				mv -f files.list.lzma files.list.lzma.bak 2> /dev/null
 43.2145 -				mv -f mirrors mirrors.bak 2> /dev/null
 43.2146 -				status
 43.2147 -			fi
 43.2148 -			download_from "$(cat mirror)" packages.desc
 43.2149 -			download_from "$(cat mirror)" packages.md5
 43.2150 -			download_from "$(cat mirror)" packages.txt
 43.2151 -			download_from "$(cat mirror)" packages.list
 43.2152 -			download_from "$(cat mirror)" packages.equiv
 43.2153 -			download_from "$(cat mirror)" files.list.lzma
 43.2154 -			download_from "$(sed 's|packages/.*||' < mirror)" mirrors
 43.2155 -			[ -f mirrors ] || mv mirrors.bak mirrors 2> /dev/null
 43.2156 -			suffix=$(head -1 mirror)
 43.2157 -			suffix=packages${suffix#*/packages}
 43.2158 -			for i in $(cat mirrors 2> /dev/null); do
 43.2159 -				grep -qs $i mirror || echo $i$suffix >> mirror
 43.2160 -			done
 43.2161 -			if [ -f "packages.list.bak" ]; then
 43.2162 -				diff -u packages.list.bak packages.list | grep ^+[a-z] > packages.diff
 43.2163 -				sed -i s/+// packages.diff
 43.2164 -				echo ""
 43.2165 -				echo -e "\033[1m`gettext \"Mirrored packages diff\"`\033[0m"
 43.2166 -				echo "================================================================================"
 43.2167 -				cat packages.diff
 43.2168 -				new_pkgs=`cat packages.diff | wc -l`
 43.2169 -				if [ "$new_pkgs" != 0 ]; then
 43.2170 -					echo "================================================================================"
 43.2171 -					eval_gettext "\$new_pkgs new packages on the mirror."; echo
 43.2172 -					echo ""
 43.2173 -				else
 43.2174 -					gettext "No new packages on the mirror."; echo
 43.2175 -					echo ""
 43.2176 -				fi
 43.2177 -			else
 43.2178 -				echo -e "
 43.2179 -================================================================================"
 43.2180 -				gettext \
 43.2181 -"Last packages.list is ready to use. Note that next time you recharge the
 43.2182 -list, a list of differences will be displayed to show new and upgradeable
 43.2183 -packages."
 43.2184 -			echo ""
 43.2185 -			fi
 43.2186 -		done ;;
 43.2187 -	upgradeable)
 43.2188 -		# Build upgradeable-packages.list quickly.
 43.2189 -		#
 43.2190 -		check_root
 43.2191 -		cd $LOCALSTATE
 43.2192 -		while read md5 file ; do
 43.2193 -			grep -qs "$md5  $file" packages.md5 && continue
 43.2194 -			for i in 1 2 3 4 5; do
 43.2195 -				file=${file%-*}
 43.2196 -				[ -d installed/$file ] || continue
 43.2197 -				echo $file
 43.2198 -				break
 43.2199 -			done
 43.2200 -		done < installed.md5 > upgradeable-packages.list ;;
 43.2201 -	upgrade)
 43.2202 -		# Upgrade all installed packages with the new version from the mirror.
 43.2203 -		#
 43.2204 -		check_root
 43.2205 -		check_for_packages_list
 43.2206 -		cd $LOCALSTATE
 43.2207 -		# Touch the blocked pkgs list to avoid errors and remove any old
 43.2208 -		# upgrade list.
 43.2209 -		touch blocked-packages.list
 43.2210 -		rm -f upgradeable-packages.list
 43.2211 -		echo ""
 43.2212 -		echo -e "\033[1m`gettext \"Available upgrades\"`\033[0m"
 43.2213 -		echo "================================================================================"
 43.2214 -		echo ""
 43.2215 -		# Some packages must be installed first
 43.2216 -		FIRST_CLASS_PACKAGE=" glibc-base slitaz-base-files slitaz-boot-scripts "
 43.2217 -		if [ -n "$PACKAGE_FILE" -a -d "$INSTALLED/$PACKAGE_FILE" ]; then
 43.2218 -			ALL=$INSTALLED/$PACKAGE_FILE
 43.2219 -		else
 43.2220 -			ALL="$(ls -d $INSTALLED/*)"
 43.2221 -		fi
 43.2222 -		for pkg in $ALL
 43.2223 -		do
 43.2224 -			[ -f $pkg/receipt ] || continue
 43.2225 -			EXTRAVERSION=""
 43.2226 -			. $pkg/receipt
 43.2227 -			# Display package name to show that Tazpkg is working...
 43.2228 -			echo -en "\\033[0G                                         "
 43.2229 -			echo -en "\\033[0G$PACKAGE"
 43.2230 -			# Skip specified pkgs listed in $LOCALSTATE/blocked-packages.list
 43.2231 -			if grep -qs "^$PACKAGE" $BLOCKED; then
 43.2232 -				blocked=$(($blocked+1))
 43.2233 -			else
 43.2234 -				# Check if the installed package is in the current list (other
 43.2235 -				# mirror or local).
 43.2236 -				NEW_PACKAGE=$(get_package_filename $PACKAGE)
 43.2237 -
 43.2238 -				if [ -n "$NEW_PACKAGE" ]; then
 43.2239 -					# Set new pkg and version for future comparison
 43.2240 -					NEW_VERSION=`echo $NEW_PACKAGE | sed s/$PACKAGE-/''/`
 43.2241 -					# Change '-' and 'pre' to points.
 43.2242 -					NEW_VERSION=`echo $NEW_VERSION | sed s/'-'/'.'/`
 43.2243 -					VERSION=`echo $VERSION | sed s/'-'/'.'/`$EXTRAVERSION
 43.2244 -					NEW_VERSION=`echo $NEW_VERSION | sed s/'pre'/'.'/`
 43.2245 -					VERSION=`echo $VERSION | sed s/'pre'/'.'/`
 43.2246 -					NEW_VERSION=`echo $NEW_VERSION | sed 's/[A-Z]\.//'`
 43.2247 -					VERSION=`echo $VERSION | sed 's/[A-Z]\.//'`
 43.2248 -					# Compare version. Upgrades are only available for official
 43.2249 -					# packages, so we control the mirror and it should be ok if
 43.2250 -					# we just check for equality.
 43.2251 -					RELEASE=""
 43.2252 -					if [ -f installed.md5 -a -f packages.md5 ]; then
 43.2253 -						current_md5=$(grep -s "  $PACKAGE-$VERSION" installed.md5 | awk '{ print $1 }')
 43.2254 -						new_md5=$(grep -hs "  $PACKAGE-$VERSION" packages.md5 undigest/*/packages.md5 | head -1 | awk '{ print $1 }')
 43.2255 -						[ -n "$current_md5" ] && [ -n "$new_md5" ] &&
 43.2256 -						[ "$current_md5" != "$new_md5" ] && RELEASE=build
 43.2257 -					fi
 43.2258 -					if [ "$VERSION" != "$NEW_VERSION" -o -n "$RELEASE" ]; then
 43.2259 -						# Version seems different. Check for major, minor or
 43.2260 -						# revision
 43.2261 -						PKG_MAJOR=`echo ${VERSION%_*} | cut -f1 -d"."`
 43.2262 -						NEW_MAJOR=`echo ${NEW_VERSION%_*} | cut -f1 -d"."`
 43.2263 -						PKG_MINOR=`echo ${VERSION%_*} | cut -f2 -d"."`
 43.2264 -						NEW_MINOR=`echo ${NEW_VERSION%_*} | cut -f2 -d"."`
 43.2265 -						# Minor
 43.2266 -						if [ "$NEW_MINOR" -gt "$PKG_MINOR" ] 2> /dev/null; then
 43.2267 -							RELEASE=minor
 43.2268 -						fi
 43.2269 -						if [ "$NEW_MINOR" -lt "$PKG_MINOR" ] 2> /dev/null; then
 43.2270 -							RELEASE=$WARNING
 43.2271 -							FIXE=yes
 43.2272 -						fi
 43.2273 -						# Major
 43.2274 -						if [ "$NEW_MAJOR" -gt "$PKG_MAJOR" ] 2> /dev/null; then
 43.2275 -							RELEASE=major
 43.2276 -							FIXE=""
 43.2277 -						fi
 43.2278 -						if [ "$NEW_MAJOR" -lt "$PKG_MAJOR" ] 2> /dev/null; then
 43.2279 -							RELEASE=WARNING
 43.2280 -							FIXE=yes
 43.2281 -						fi
 43.2282 -						# Default to revision.
 43.2283 -						if [ -z $RELEASE ]; then
 43.2284 -							RELEASE=revision
 43.2285 -						fi
 43.2286 -						# Pkg name is already displayed by the check process.
 43.2287 -						echo -en "\033[24G $VERSION"
 43.2288 -						echo -en "\033[38G --->"
 43.2289 -						echo -en "\033[43G $NEW_VERSION"
 43.2290 -						echo -en "\033[58G $CATEGORY"
 43.2291 -						echo -e "\033[72G $RELEASE"
 43.2292 -						up=$(($up+1))
 43.2293 -						echo "$PACKAGE" >> upgradeable-packages.list
 43.2294 -						case "$FIRST_CLASS_PACKAGE" in
 43.2295 -						*\ $PACKAGE\ *) echo "$PACKAGE" >> upgradeable-packages.list$$;;
 43.2296 -						esac
 43.2297 -						unset RELEASE
 43.2298 -					fi
 43.2299 -					packages=$(($packages+1))
 43.2300 -				fi
 43.2301 -			fi
 43.2302 -		done
 43.2303 -		if [ -z $blocked ]; then
 43.2304 -			blocked=0
 43.2305 -		fi
 43.2306 -		# Clean last checked package and display summary.
 43.2307 -		if [ ! "$up" = "" ]; then
 43.2308 -			echo -e "\\033[0G                                         "
 43.2309 -			echo "================================================================================"
 43.2310 -			eval_gettext "\$packages installed and listed packages to consider, \$up to upgrade, \$blocked blocked."; echo
 43.2311 -			echo ""
 43.2312 -		else
 43.2313 -			echo -e "\\033[0G`gettext \"System is up-to-date.\"`                    "
 43.2314 -			echo ""
 43.2315 -			echo "================================================================================"
 43.2316 -			eval_gettext "\$packages installed and listed packages to consider, 0 to upgrade, \$blocked blocked."; echo
 43.2317 -			echo ""
 43.2318 -			exit 0
 43.2319 -		fi
 43.2320 -		# What to do if major or minor version is smaller.
 43.2321 -		if [ "$FIXE" == "yes" ]; then
 43.2322 -			gettext \
 43.2323 -"WARNING ---> Installed package seems more recent than the mirrored
 43.2324 -one. You can block packages using the command : 'tazpkg block package'.
 43.2325 -Or upgrade packages at your own risk."
 43.2326 -			echo ""
 43.2327 -		fi
 43.2328 -		# Ask for upgrade, it can be done another time.
 43.2329 -		echo -n "Upgrade now (y/N) ? "; read anser
 43.2330 -		if [ ! "$anser" = "y" ]; then
 43.2331 -			echo ""
 43.2332 -			gettext "Exiting. No package upgraded."; echo
 43.2333 -			echo ""
 43.2334 -			exit 0
 43.2335 -		fi
 43.2336 -		# If anser is yes (y). Install all new versions.
 43.2337 -		cat upgradeable-packages.list >> upgradeable-packages.list$$
 43.2338 -		mv -f upgradeable-packages.list$$ upgradeable-packages.list
 43.2339 -		yes y | tazpkg get-install-list upgradeable-packages.list --forced
 43.2340 -		rm -f upgradeable-packages.list
 43.2341 -		;;
 43.2342 -	bugs)
 43.2343 -		# Show known bugs in package(s)
 43.2344 -		#
 43.2345 -		cd $INSTALLED
 43.2346 -		shift
 43.2347 -		LIST=$@
 43.2348 -		[ -n "$LIST" ] || LIST=`ls`
 43.2349 -		MSG=`gettext "No known bugs."`
 43.2350 -		for PACKAGE in $LIST; do
 43.2351 -			BUGS=""
 43.2352 -			EXTRAVERSION=""
 43.2353 -			. $PACKAGE/receipt
 43.2354 -			if [ -n "$BUGS" ]; then
 43.2355 -				MSG=`gettext "Bug list completed"`
 43.2356 -				echo ""
 43.2357 -				eval_gettext "Bugs in package \$PACKAGE version \$VERSION\$EXTRAVERSION:"; echo
 43.2358 -				cat <<EOT
 43.2359 -  $BUGS
 43.2360 -EOT
 43.2361 -			fi
 43.2362 -		done
 43.2363 -		echo "$MSG" ;;
 43.2364 -	check)
 43.2365 -		# Check installed packages set.
 43.2366 -		#
 43.2367 -		check_root
 43.2368 -		cd $INSTALLED
 43.2369 -		for PACKAGE in `ls`; do
 43.2370 -			if [ ! -f $PACKAGE/receipt ]; then
 43.2371 -				eval_gettext "The package \$PACKAGE installation has not completed"; echo
 43.2372 -				continue
 43.2373 -			fi
 43.2374 -			DEPENDS=""
 43.2375 -			EXTRAVERSION=""
 43.2376 -			. $PACKAGE/receipt
 43.2377 -			if [ -s $PACKAGE/modifiers ]; then
 43.2378 -				eval_gettext \
 43.2379 -					"The package \$PACKAGE \$VERSION\$EXTRAVERSION has been modified by:"; echo
 43.2380 -				for i in $(cat $PACKAGE/modifiers); do
 43.2381 -					echo "  $i"
 43.2382 -				done
 43.2383 -			fi
 43.2384 -			MSG="Files lost from $PACKAGE $VERSION$EXTRAVERSION :\n"
 43.2385 -			while read file; do
 43.2386 -				[ -e "$file" ] && continue
 43.2387 -				if [ -L "$file" ]; then
 43.2388 -					MSG="$MSG  target of symlink"
 43.2389 -				fi
 43.2390 -				echo -e "$MSG  $file"
 43.2391 -				MSG=""
 43.2392 -			done < $PACKAGE/files.list
 43.2393 -			MSG="Missing dependencies for $PACKAGE $VERSION$EXTRAVERSION :\n"
 43.2394 -			for i in $DEPENDS; do
 43.2395 -				[ -d $i ] && continue
 43.2396 -				[ -d $(equivalent_pkg $i) ] && continue
 43.2397 -				echo -e "$MSG  $i"
 43.2398 -				MSG=""
 43.2399 -			done
 43.2400 -			MSG="Dependencies loop between $PACKAGE and :\n"
 43.2401 -			ALL_DEPS=""
 43.2402 -			check_for_deps_loop $PACKAGE $DEPENDS
 43.2403 -		done
 43.2404 -		echo -n "Looking for known bugs... "
 43.2405 -		tazpkg bugs
 43.2406 -		if [ "$PACKAGE_FILE" = "--full" ]; then
 43.2407 -			for file in */md5sum; do
 43.2408 -				CONFIG_FILES=""
 43.2409 -				. $(dirname "$file")/receipt
 43.2410 -				[ -s "$file" ] || continue
 43.2411 -				while read md5 f; do
 43.2412 -					[ -f $f ] || continue
 43.2413 -					for i in $CONFIG_FILES; do
 43.2414 -						case "$f" in
 43.2415 -						$i|$i/*) continue 2;;
 43.2416 -						esac
 43.2417 -					done
 43.2418 -					echo "$md5  $f"
 43.2419 -				done < "$file" | md5sum -c - 2> /dev/null | \
 43.2420 -				  grep -v OK$ | sed 's/FAILED$/MD5SUM MISMATCH/'
 43.2421 -			done
 43.2422 -			FILES=" "
 43.2423 -			for file in $(cat */files.list); do
 43.2424 -				[ -d "$file" ] && continue
 43.2425 -				case "$FILES" in *\ $file\ *) continue;; esac
 43.2426 -				[ $(grep "^$(echo $file | grepesc)$" */files.list 2> /dev/null | \
 43.2427 -					wc -l) -gt 1 ] || continue
 43.2428 -				FILES="$FILES$file "
 43.2429 -				echo "The following packages provide $file :"
 43.2430 -				grep -l "^$(echo $file | grepesc)$" */files.list | while read f
 43.2431 -				do
 43.2432 -					pkg=${f%/files.list}
 43.2433 -					echo -n "  $pkg"
 43.2434 -					if [ -f $pkg/modifiers ]; then
 43.2435 -						echo -n " (overridden by $(echo "$(cat $pkg/modifiers)"))"
 43.2436 -					fi
 43.2437 -					echo ""
 43.2438 -				done
 43.2439 -			done
 43.2440 -			MSG="No package has installed the following files:\n"
 43.2441 -			find /etc /bin /sbin /lib /usr /var/www \
 43.2442 -				-not -type d 2> /dev/null | while read file; do
 43.2443 -				case "$file" in *\[*) continue;; esac
 43.2444 -				grep -q "^$(echo $file | grepesc)$" */files.list && continue
 43.2445 -				echo -e "$MSG  $file"
 43.2446 -				MSG=""
 43.2447 -			done
 43.2448 -		fi
 43.2449 -		echo "Check completed." ;;
 43.2450 -	block)
 43.2451 -		# Add a pkg name to the list of blocked packages.
 43.2452 -		#
 43.2453 -		check_root
 43.2454 -		check_for_package_on_cmdline
 43.2455 -		echo ""
 43.2456 -		if grep -qs "^$PACKAGE" $BLOCKED; then
 43.2457 -			eval_gettext "\$PACKAGE is already in the blocked packages list."; echo
 43.2458 -			echo ""
 43.2459 -			exit 0
 43.2460 -		else
 43.2461 -			eval_gettext "Add \$PACKAGE to : \$BLOCKED..."
 43.2462 -			echo $PACKAGE >> $BLOCKED
 43.2463 -			status
 43.2464 -			# Log this activity
 43.2465 -			. $INSTALLED/$PACKAGE/receipt
 43.2466 -			log Blocked
 43.2467 -		fi
 43.2468 -		echo "" ;;
 43.2469 -	unblock)
 43.2470 -		# Remove a pkg name from the list of blocked packages.
 43.2471 -		#
 43.2472 -		check_root
 43.2473 -		check_for_package_on_cmdline
 43.2474 -		echo ""
 43.2475 -		if grep -qs "^$PACKAGE" $BLOCKED; then
 43.2476 -			eval_gettext "Removing \$PACKAGE from : \$BLOCKED..."
 43.2477 -			sed -i s/$PACKAGE/''/ $BLOCKED
 43.2478 -			sed -i '/^$/d' $BLOCKED
 43.2479 -			status
 43.2480 -			# Log this activity
 43.2481 -			. $INSTALLED/$PACKAGE/receipt
 43.2482 -			log Unblocked
 43.2483 -		else
 43.2484 -			eval_gettext "\$PACKAGE is not in the blocked packages list."
 43.2485 -			echo ""
 43.2486 -			exit 0
 43.2487 -		fi
 43.2488 -		echo "" ;;
 43.2489 -	get)
 43.2490 -		# Downlowd a package with wget.
 43.2491 -		#
 43.2492 -		check_for_package_on_cmdline
 43.2493 -		check_for_packages_list
 43.2494 -		check_for_package_in_list
 43.2495 -		echo ""
 43.2496 -		if [ -f $PACKAGE.tazpkg ]; then
 43.2497 -			if [ "$(md5sum $PACKAGE.tazpkg)" != "$(grep "  $PACKAGE.tazpkg$" /var/lib/tazpkg/packages.md5)" ]; then
 43.2498 -				rm -f $PACKAGE.tazpkg
 43.2499 -				download $PACKAGE.tazpkg
 43.2500 -			fi
 43.2501 -		else
 43.2502 -			download $PACKAGE.tazpkg
 43.2503 -		fi
 43.2504 -		echo "" ;;
 43.2505 -	get-install)
 43.2506 -		# Download and install a package.
 43.2507 -		#
 43.2508 -		check_root
 43.2509 -		check_for_package_on_cmdline
 43.2510 -		check_for_packages_list
 43.2511 -		DO_CHECK=""
 43.2512 -		while [ -n "$3" ]; do
 43.2513 -			case "$3" in
 43.2514 -			--forced)
 43.2515 -				DO_CHECK="no"
 43.2516 -				;;
 43.2517 -			--root=*)
 43.2518 -				ROOT="${3#--root=}"
 43.2519 -				;;
 43.2520 -			--list=*)
 43.2521 -				INSTALL_LIST="${3#--list=}"
 43.2522 -				;;
 43.2523 -			*)	shift 2
 43.2524 -				echo -e "\nUnknown option $*.\n"
 43.2525 -				exit 1
 43.2526 -				;;
 43.2527 -			esac
 43.2528 -			shift
 43.2529 -		done
 43.2530 -		AUTOEXEC="no"
 43.2531 -		if ! check_for_package_in_list check; then
 43.2532 -			PACKAGE=get-$PACKAGE
 43.2533 -			AUTOEXEC=$PACKAGE
 43.2534 -			check_for_package_in_list
 43.2535 -			if [ -n "$(get_installed_package_pathname $PACKAGE $ROOT)" ]; then
 43.2536 -				$AUTOEXEC $ROOT
 43.2537 -				exit 0
 43.2538 -			fi
 43.2539 -		fi
 43.2540 -		# Check if forced install.
 43.2541 -		if [ "$DO_CHECK" = "no" ]; then
 43.2542 -			rm -f $CACHE_DIR/$PACKAGE.tazpkg
 43.2543 -		else
 43.2544 -			check_for_installed_package $ROOT
 43.2545 -		fi
 43.2546 -		cd $CACHE_DIR
 43.2547 -		if [ -f "$PACKAGE.tazpkg" ]; then
 43.2548 -			echo "$PACKAGE already in the cache : $CACHE_DIR"
 43.2549 -			# Check package download was finished
 43.2550 -			tail -c 2k $PACKAGE.tazpkg | grep -q 00000000TRAILER || {
 43.2551 -				eval_gettext "Continuing \$PACKAGE download"; echo
 43.2552 -				download $PACKAGE.tazpkg
 43.2553 -			}
 43.2554 -			if [ "$(md5sum $PACKAGE.tazpkg)" != "$(grep "  $PACKAGE.tazpkg$" /var/lib/tazpkg/packages.md5)" ]; then
 43.2555 -				rm -f $PACKAGE.tazpkg
 43.2556 -				download $PACKAGE.tazpkg
 43.2557 -			fi
 43.2558 -		else
 43.2559 -			echo ""
 43.2560 -			download $PACKAGE.tazpkg
 43.2561 -		fi
 43.2562 -		PACKAGE_FILE=$CACHE_DIR/$PACKAGE.tazpkg
 43.2563 -		install_package $ROOT
 43.2564 -		[ "$AUTOEXEC" != "no" ] && $PACKAGE $ROOT 
 43.2565 -		update_desktop_database $ROOT 
 43.2566 -		update_mime_database $ROOT ;;
 43.2567 -	clean-cache)
 43.2568 -		# Remove all downloaded packages.
 43.2569 -		#
 43.2570 -		check_root
 43.2571 -		files=`ls -1 $CACHE_DIR | wc -l`
 43.2572 -		echo ""
 43.2573 -		echo -e "\033[1m`gettext \"Clean cache:\"`\033[0m $CACHE_DIR"
 43.2574 -		echo "================================================================================"
 43.2575 -		gettext "Cleaning cache directory..."
 43.2576 -		rm -rf $CACHE_DIR/*
 43.2577 -		status
 43.2578 -		echo "================================================================================"
 43.2579 -		eval_gettext "\$files file(s) removed from cache."; echo
 43.2580 -		echo "" ;;
 43.2581 -	list-undigest)
 43.2582 -		# list undigest URLs.
 43.2583 -		#
 43.2584 -		if [ "$2" = "--box" ]; then
 43.2585 -			for i in $LOCALSTATE/undigest/*/mirror; do
 43.2586 -				[ -f $i ] || continue
 43.2587 -				echo "$(basename $(dirname $i))|$(cat $i)"
 43.2588 -			done
 43.2589 -		else
 43.2590 -			echo ""
 43.2591 -			echo -e "\033[1m`gettext \"Current undigest(s)\"`\033[0m"
 43.2592 -			echo "================================================================================"
 43.2593 -			for i in $LOCALSTATE/undigest/*/mirror; do
 43.2594 -				if [ ! -f $i ]; then
 43.2595 -					gettext "No undigest mirror found."; echo
 43.2596 -					exit 1
 43.2597 -				fi
 43.2598 -				echo "$(basename $(dirname $i))	$(cat $i)"
 43.2599 -			done
 43.2600 -			echo ""
 43.2601 -		fi ;;
 43.2602 -	remove-undigest)
 43.2603 -		# remove undigest URL.
 43.2604 -		#
 43.2605 -		check_root
 43.2606 -		if [ -d $LOCALSTATE/undigest/$2 ]; then
 43.2607 -			echo -n "Remove $2 undigest (y/N) ? "; read anser
 43.2608 -			if [ "$anser" = "y" ]; then
 43.2609 -				echo -n "Removing $2 undigest..."
 43.2610 -				rm -rf $LOCALSTATE/undigest/$2
 43.2611 -				status
 43.2612 -				rmdir $LOCALSTATE/undigest 2> /dev/null
 43.2613 -			fi
 43.2614 -		else
 43.2615 -			echo "Undigest $2 not found"
 43.2616 -		fi ;;
 43.2617 -	add-undigest|setup-undigest)
 43.2618 -		# Add undigest URL.
 43.2619 -		#
 43.2620 -		check_root
 43.2621 -		undigest=$2
 43.2622 -		[ -d $LOCALSTATE/undigest ] || mkdir $LOCALSTATE/undigest
 43.2623 -		if [ -z "$undigest" ]; then
 43.2624 -			i=1
 43.2625 -			while [ -d $LOCALSTATE/undigest/$i ]; do
 43.2626 -				i=$(($i+1))
 43.2627 -			done
 43.2628 -			undigest=$i
 43.2629 -		fi
 43.2630 -		if [ ! -d $LOCALSTATE/undigest/$undigest ]; then
 43.2631 -			eval_gettext "Creating new undigest \$undigest."; echo
 43.2632 -			mkdir $LOCALSTATE/undigest/$undigest
 43.2633 -		fi
 43.2634 -		setup_mirror $LOCALSTATE/undigest/$undigest $3 ;;
 43.2635 -	setup-mirror)
 43.2636 -		# Change mirror URL.
 43.2637 -		#
 43.2638 -		check_root
 43.2639 -		setup_mirror $LOCALSTATE $2 ;;
 43.2640 -	reconfigure)
 43.2641 -		# Replay post_install from receipt
 43.2642 -		#
 43.2643 -		check_for_package_on_cmdline
 43.2644 -		check_root
 43.2645 -		ROOT=""
 43.2646 -		while [ -n "$3" ]; do
 43.2647 -			case "$3" in
 43.2648 -			--root=*)
 43.2649 -				ROOT="${3#--root=}/" ;;
 43.2650 -			*)	shift 2
 43.2651 -				echo -e "\nUnknown option $*.\n"
 43.2652 -				exit 1 ;;
 43.2653 -			esac
 43.2654 -			shift
 43.2655 -		done
 43.2656 -		if [ -d "$ROOT$INSTALLED/$PACKAGE" ]; then
 43.2657 -			check_for_receipt $ROOT
 43.2658 -			# Check for post_install
 43.2659 -			if grep -q ^post_install $ROOT$INSTALLED/$PACKAGE/receipt; then
 43.2660 -				. $ROOT$INSTALLED/$PACKAGE/receipt
 43.2661 -				post_install $ROOT
 43.2662 -				# Log this activity
 43.2663 -				[ -n "$ROOT" ] || log Reconfigured
 43.2664 -			else
 43.2665 -				echo ""
 43.2666 -				eval_gettext "Nothing to do for \$PACKAGE."; echo
 43.2667 -			fi
 43.2668 -		else
 43.2669 -			echo ""
 43.2670 -			eval_gettext "Package \$PACKAGE is not installed."; echo
 43.2671 -			gettext "Install package with 'tazpkg install' or 'tazpkg get-install'"; echo
 43.2672 -			echo ""
 43.2673 -		fi ;;
 43.2674 -	shell)
 43.2675 -		# Tazpkg SHell
 43.2676 -		#
 43.2677 -		if test $(id -u) = 0 ; then
 43.2678 -			PROMPT="\\033[1;33mtazpkg\\033[0;39m# "
 43.2679 -		else
 43.2680 -			PROMPT="\\033[1;33mtazpkg\\033[0;39m> "
 43.2681 -		fi
 43.2682 -		if [ ! "$2" = "--noheader" ]; then
 43.2683 -			clear
 43.2684 -			echo ""
 43.2685 -			echo -e "\033[1mTazpkg SHell.\033[0m"
 43.2686 -			echo "================================================================================"
 43.2687 -			gettext "Type 'usage' to list all available commands or 'quit' or 'q' to exit."; echo
 43.2688 -			echo ""
 43.2689 -		fi
 43.2690 -		while true
 43.2691 -		do
 43.2692 -			echo -en "$PROMPT"; read cmd
 43.2693 -			case $cmd in
 43.2694 -				q|quit)
 43.2695 -					break ;;
 43.2696 -				shell)
 43.2697 -					gettext "You are already running a Tazpkg SHell."; echo ;;
 43.2698 -				su)
 43.2699 -					su -c 'exec tazpkg shell --noheader' && break ;;
 43.2700 -				"")
 43.2701 -					continue ;;
 43.2702 -				*)
 43.2703 -					tazpkg $cmd ;;
 43.2704 -			esac
 43.2705 -		done ;;
 43.2706 -	depends)
 43.2707 -		# Display dependencies tree
 43.2708 -		cd $INSTALLED
 43.2709 -		ALL_DEPS=""
 43.2710 -		if [ -f $2/receipt ]; then
 43.2711 -			dep_scan $2 ""
 43.2712 -		fi ;;
 43.2713 -	rdepends)
 43.2714 -		# Display reverse dependencies tree
 43.2715 -		cd $INSTALLED
 43.2716 -		ALL_DEPS=""
 43.2717 -		if [ -f $2/receipt ]; then
 43.2718 -			rdep_scan $2
 43.2719 -		fi ;;
 43.2720 -	convert)
 43.2721 -		# convert misc package format to .tazpkg
 43.2722 -		check_for_package_file
 43.2723 -		case "$PACKAGE_FILE" in
 43.2724 -		*.deb|*.udeb)
 43.2725 -			convert_deb;;
 43.2726 -		*.rpm)
 43.2727 -			convert_rpm;;
 43.2728 -		*.tgz)
 43.2729 -			convert_tgz;;
 43.2730 -		*.pkg.tar.gz)
 43.2731 -			convert_arch;;
 43.2732 -		*.ipk|*.opk)
 43.2733 -			convert_ipk;;
 43.2734 -		*)
 43.2735 -			gettext "Unsupported format"; echo ;;
 43.2736 -		esac ;;
 43.2737 -	link)
 43.2738 -		# link a package from another slitaz installation
 43.2739 -		PACKAGE=$2
 43.2740 -		if [ ! -d "$TARGET_DIR" -o \
 43.2741 -		     ! -d "$TARGET_DIR$INSTALLED/$PACKAGE" ]; then
 43.2742 -			cat <<EOT
 43.2743 -usage:   tazpkg link package_name slitaz_root
 43.2744 -example: 'tazpkg link openoffice /mnt' will use less than 100k in
 43.2745 -         your ram running system.
 43.2746 -EOT
 43.2747 -			exit 1
 43.2748 -		fi
 43.2749 -		if [ -e "$INSTALLED/$PACKAGE" ]; then
 43.2750 -			eval_gettext "\$PACKAGE is already installed."; echo
 43.2751 -			exit 1
 43.2752 -		fi
 43.2753 -		ln -s $TARGET_DIR$INSTALLED/$PACKAGE $INSTALLED
 43.2754 -		DEPENDS="$(. $INSTALLED/$PACKAGE/receipt ; echo $DEPENDS)"
 43.2755 -		MISSING=""
 43.2756 -		for i in $DEPENDS; do
 43.2757 -			[ -e $INSTALLED/$i ] && continue
 43.2758 -			MISSING="$MISSING$i "
 43.2759 -			eval_gettext "Missing : \$i"; echo
 43.2760 -		done
 43.2761 -		if [ -n "$MISSING" ]; then
 43.2762 -			echo ""
 43.2763 -			gettext "Link all missing dependencies (y/N) ? "; read answer
 43.2764 -			echo ""
 43.2765 -			if [ "$answer" = "y" ]; then
 43.2766 -				for i in $MISSING; do
 43.2767 -					tazpkg link $i $TARGET_DIR
 43.2768 -				done
 43.2769 -			else
 43.2770 -				echo ""
 43.2771 -				eval_gettext "Leaving dependencies for \$PACKAGE unsolved."; echo
 43.2772 -				gettext "The package is installed but will probably not work."; echo
 43.2773 -				echo ""
 43.2774 -			fi
 43.2775 -		fi
 43.2776 -		. $INSTALLED/$PACKAGE/receipt
 43.2777 -		if grep -q ^pre_install $INSTALLED/$PACKAGE/receipt; then
 43.2778 -			pre_install
 43.2779 -		fi
 43.2780 -		while read path; do
 43.2781 -			[ -e $path ] && continue
 43.2782 -			while true; do
 43.2783 -				dir=$(dirname $path)
 43.2784 -				[ -e $dir ] && break
 43.2785 -				path=$dir
 43.2786 -			done
 43.2787 -			ln -s $TARGET_DIR$path $dir
 43.2788 -		done < $INSTALLED/$PACKAGE/files.list
 43.2789 -		if grep -q ^post_install $INSTALLED/$PACKAGE/receipt; then
 43.2790 -			post_install
 43.2791 -		fi ;;
 43.2792 -	usage|*)
 43.2793 -		# Print a short help or give usage for an unknown or empty command.
 43.2794 -		usage ;;
 43.2795 -esac
 43.2796 -
 43.2797 -exit 0