wok rev 688

xarchive*: use slitaz-wrap.sh, remove from System tools
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Apr 25 21:50:15 2008 +0000 (2008-04-25)
parents 7d534380fdad
children 30d14453cdd1
files xarchive-extras/receipt xarchive/receipt xarchive/stuff/slitaz-wrap.sh xarchive/stuff/slitaz-xarchive-wrappers-0.2.8-6.patch
line diff
     1.1 --- a/xarchive-extras/receipt	Fri Apr 25 17:12:21 2008 +0000
     1.2 +++ b/xarchive-extras/receipt	Fri Apr 25 21:50:15 2008 +0000
     1.3 @@ -17,6 +17,9 @@
     1.4  	mkdir -p $fs/usr/lib/xarchive/wrappers
     1.5  	cp -a $_pkg/usr/lib/xarchive/wrappers/* $fs/usr/lib/xarchive/wrappers
     1.6  	rm -f fs/usr/lib/xarchive/wrappers/tar-*
     1.7 +	rm -f fs/usr/lib/xarchive/wrappers/deb-*
     1.8 +	rm -f fs/usr/lib/xarchive/wrappers/rpm-*
     1.9 +	rm -f fs/usr/lib/xarchive/wrappers/zip-*
    1.10  	sed -i 's|#!\s*/bin/bash|#!/bin/sh|' $_pkg/usr/lib/xarchive/wrappers/*
    1.11  }
    1.12  
     2.1 --- a/xarchive/receipt	Fri Apr 25 17:12:21 2008 +0000
     2.2 +++ b/xarchive/receipt	Fri Apr 25 21:50:15 2008 +0000
     2.3 @@ -5,11 +5,9 @@
     2.4  CATEGORY="x-windows"
     2.5  SHORT_DESC="A GTK+ front-end for command line archiving tools."
     2.6  MAINTAINER="Erjo <erjo@slitaz.org>"
     2.7 -DEPENDS=""
     2.8  TARBALL="$PACKAGE-$VERSION.tar.gz"
     2.9  WEB_SITE="http://xarchive.sourceforge.net/"
    2.10 -WGET_URL="http://dfn.dl.sourceforge.net/sourceforge/xarchive/$TARBALL" 
    2.11 -JWM_MENU='Utilities:<Program icon="xarchive.xpm" label="XArchive">xarchive</Program>'
    2.12 +WGET_URL="$SF_MIRROR/$PACKAGE/$TARBALL"
    2.13  
    2.14  # Rules to configure and make the package.ls sr	
    2.15  compile_rules()
    2.16 @@ -30,8 +28,8 @@
    2.17  {
    2.18  	mkdir -p $fs/usr/lib/xarchive/wrappers
    2.19  	cp -a $_pkg/usr/bin $fs/usr
    2.20 -	cp -a $_pkg/usr/lib/xarchive/wrappers/tar-* $fs/usr/lib/xarchive/wrappers
    2.21  	sed -i 's|#!\s*/bin/bash|#!/bin/sh|' $_pkg/usr/lib/xarchive/wrappers/*
    2.22 +	cp stuff/slitaz-wrap.sh $fs/usr/lib/xarchive/wrappers
    2.23  	strip -s $fs/usr/bin/*
    2.24  }
    2.25  
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/xarchive/stuff/slitaz-wrap.sh	Fri Apr 25 21:50:15 2008 +0000
     3.3 @@ -0,0 +1,529 @@
     3.4 +#!/bin/sh
     3.5 +# slitaz-wrap.sh - sh slitaz core wrapper for xarchive frontend
     3.6 +# Copyright (C) 2005 Lee Bigelow <ligelowbee@yahoo.com> 
     3.7 +# Copyright (C) 2008 Pascal Bellard <pascal.bellard@slitaz.org> 
     3.8 +# 
     3.9 +# This program is free software; you can redistribute it and/or modify
    3.10 +# it under the terms of the GNU General Public License as published by
    3.11 +# the Free Software Foundation; either version 2 of the License, or
    3.12 +# (at your option) any later version.
    3.13 +# 
    3.14 +# This program is distributed in the hope that it will be useful,
    3.15 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
    3.16 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    3.17 +# GNU General Public License for more details.
    3.18 +# 
    3.19 +# You should have received a copy of the GNU General Public License
    3.20 +# along with this program; if not, write to the Free Software
    3.21 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    3.22 +
    3.23 +# set up exit status variables
    3.24 +E_UNSUPPORTED=65
    3.25 +
    3.26 +# Supported file extentions for tar 
    3.27 +TAR_EXTS="tar"
    3.28 +GZIP_EXTS="tar.gz tgz"
    3.29 +LZMA_EXTS="tar.lz tar.lzma tlz"
    3.30 +BZIP2_EXTS="tar.bz tbz tar.bz2 tbz2"
    3.31 +COMPRESS_EXTS="tar.z tar.Z"
    3.32 +CPIO_EXTS="cpio"
    3.33 +CPIOGZ_EXTS="cpio.gz"
    3.34 +ZIP_EXTS="zip cbz jar"
    3.35 +RPM_EXTS="rpm"
    3.36 +DEB_EXTS="deb"
    3.37 +TAZPKG_EXTS="tazpkg"
    3.38 +
    3.39 +# Setup awk program
    3.40 +AWK_PROGS="mawk gawk awk"
    3.41 +AWK_PROG=""
    3.42 +for awkprog in $AWK_PROGS; do
    3.43 +    if [ "$(which $awkprog)" ]; then
    3.44 +        AWK_PROG="$awkprog"
    3.45 +        break
    3.46 +    fi
    3.47 +done
    3.48 +
    3.49 +# setup variables opt and archive.
    3.50 +# the shifting will leave the files passed as
    3.51 +# all the remaining args "$@"
    3.52 +opt="$1"
    3.53 +test -z $1 || shift 1
    3.54 +archive="$1"
    3.55 +test -z $1 || shift 1
    3.56 +
    3.57 +# set up compression variables for our compression functions. 
    3.58 +# translate archive name to lower case for pattern matching.
    3.59 +# use compressor -c option to output to stdout and direct it where we want
    3.60 +lc_archive="$(echo $archive|tr [:upper:] [:lower:])"
    3.61 +DECOMPRESS="cat"
    3.62 +COMPRESS="cat"
    3.63 +COMPRESS2=""
    3.64 +TAR_COMPRESS_OPT=""
    3.65 +for ext in $GZIP_EXTS $CPIOGZ_EXTS; do
    3.66 +    if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
    3.67 +        DECOMPRESS="gzip -dc"
    3.68 +        COMPRESS="gzip -c"
    3.69 +        TAR_COMPRESS_OPT="z"
    3.70 +    fi
    3.71 +done
    3.72 +for ext in $BZIP2_EXTS; do
    3.73 +    if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
    3.74 +        DECOMPRESS="bzip2 -dc" 
    3.75 +        COMPRESS="bzip2 -c"
    3.76 +        TAR_COMPRESS_OPT="j"
    3.77 +    fi
    3.78 +done
    3.79 +for ext in $LZMA_EXTS; do
    3.80 +    if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
    3.81 +        DECOMPRESS="unlzma -c" 
    3.82 +        COMPRESS="lzma e"
    3.83 +        COMPRESS2=" -so"
    3.84 +        TAR_COMPRESS_OPT="a"
    3.85 +    fi
    3.86 +done
    3.87 +for ext in $COMPRESS_EXTS; do
    3.88 +    if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
    3.89 +        DECOMPRESS="uncompress -dc" 
    3.90 +        COMPRESS="compress -c"
    3.91 +        TAR_COMPRESS_OPT="--use-compress-prog=compress"
    3.92 +    fi
    3.93 +done
    3.94 +
    3.95 +# Compression functions
    3.96 +decompress_func()
    3.97 +{
    3.98 +    if [ "$DECOMPRESS" ]; then 
    3.99 +        tmpname="$(mktemp -t tartmp.XXXXXX)"
   3.100 +        if [ -f "$archive" ]; then 
   3.101 +            $DECOMPRESS "$archive" > "$tmpname" 
   3.102 +        fi
   3.103 +        # store old name for when we recompress
   3.104 +        oldarch="$archive"
   3.105 +        # change working file to decompressed tmp 
   3.106 +        archive="$tmpname"
   3.107 +    fi
   3.108 +}
   3.109 +
   3.110 +compress_func()
   3.111 +{
   3.112 +    if [ "$COMPRESS" ] && [ "$oldarch" ]; then
   3.113 +        [ -f "$oldarch" ] && rm "$oldarch"
   3.114 +        if $COMPRESS "$archive" $COMPRESS2 > "$oldarch"; then
   3.115 +            rm "$archive"
   3.116 +        fi
   3.117 +    fi
   3.118 +}
   3.119 +
   3.120 +not_busybox()
   3.121 +{
   3.122 +    case "$(readlink $(which $1))" in
   3.123 +    *busybox*) return 1;;
   3.124 +    esac
   3.125 +    return 0
   3.126 +}
   3.127 +
   3.128 +# the option switches
   3.129 +case "$opt" in
   3.130 +    -i) # info: output supported extentions for progs that exist
   3.131 +        for ext in $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS \
   3.132 +                   $CPIO_EXTS $CPIOGZ_EXTS $ZIP_EXTS $DEB_EXTS $RPM_EXTS \
   3.133 +                   $TAZPKG_EXTS ; do
   3.134 +            printf "%s;" $ext
   3.135 +            if [ "$ext" = "zip" -a ! "$(which zip)" ]; then
   3.136 +                echo warning: zip not found, extract only >/dev/stderr
   3.137 +            fi
   3.138 +            if [ "$ext" = "tar" ] && ! not_busybox tar; then
   3.139 +                echo warning: gnu/tar not found, extract only >/dev/stderr
   3.140 +            fi
   3.141 +        done
   3.142 +        printf "\n"
   3.143 +        exit
   3.144 +        ;;
   3.145 +
   3.146 +    -o) # open: mangle output of tar cmd for xarchive 
   3.147 +        for ext in $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS; do
   3.148 +        # format of tar output:
   3.149 +# lrwxrwxrwx USR/GRP       0 2005-05-12 00:32:03 file -> /path/to/link
   3.150 +# -rw-r--r-- USR/GRP    6622 2005-04-22 12:29:14 file 
   3.151 +# 1          2          3    4          5        6
   3.152 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.153 +                tar -tv${TAR_COMPRESS_OPT}f "$archive" | $AWK_PROG '
   3.154 +        {
   3.155 +          attr=$1
   3.156 +          split($2,ids,"/") #split up the 2nd field to get uid/gid
   3.157 +          uid=ids[1]
   3.158 +          gid=ids[2]
   3.159 +          size=$3
   3.160 +          date=$4
   3.161 +          time=$5
   3.162 +          
   3.163 +          #this method works with filenames that start with a space (evil!)
   3.164 +          #split line a time and a space
   3.165 +          split($0,linesplit, $5 " ")
   3.166 +          #then split the second item (name&link) at the space arrow space
   3.167 +          split(linesplit[2], nlsplit, " -> ")
   3.168 +
   3.169 +          name=nlsplit[1]
   3.170 +          link=nlsplit[2]
   3.171 +
   3.172 +          if (! link) {link="-"} #if there was no link set it to a dash
   3.173 +
   3.174 +          printf "%s;%s;%s;%s;%s;%s;%s;%s\n",name,size,attr,uid,gid,date,time,link
   3.175 +        }'
   3.176 +                exit
   3.177 +	    fi
   3.178 +        done
   3.179 +
   3.180 +        for ext in $CPIO_EXTS $CPIOGZ_EXTS; do
   3.181 +        # format of cpio output:
   3.182 +# lrwxrwxrwx USR/GRP       0 2005-05-12 00:32:03 file -> /path/to/link
   3.183 +# -rw-r--r-- USR/GRP    6622 2005-04-22 12:29:14 file 
   3.184 +# 1          2          3    4          5        6
   3.185 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.186 +                $DECOMPRESS "$archive" | cpio -tv | $AWK_PROG '
   3.187 +        {
   3.188 +          attr=$1
   3.189 +          split($2,ids,"/") #split up the 2nd field to get uid/gid
   3.190 +          uid=ids[1]
   3.191 +          gid=ids[2]
   3.192 +          size=$3
   3.193 +          date=$4
   3.194 +          time=$5
   3.195 +          
   3.196 +          #this method works with filenames that start with a space (evil!)
   3.197 +          #split line a time and a space
   3.198 +          split($0,linesplit, $5 " ")
   3.199 +          #then split the second item (name&link) at the space arrow space
   3.200 +          split(linesplit[2], nlsplit, " -> ")
   3.201 +
   3.202 +          name=nlsplit[1]
   3.203 +          link=nlsplit[2]
   3.204 +
   3.205 +          if (! link) {link="-"} #if there was no link set it to a dash
   3.206 +
   3.207 +          if (name != "" && uid != "blocks") printf "%s;%s;%s;%s;%s;%s;%s;%s\n",name,size,attr,uid,gid,date,time,link
   3.208 +        }'
   3.209 +                exit
   3.210 +	    fi
   3.211 +        done
   3.212 +
   3.213 +        for ext in $ZIP_EXTS; do
   3.214 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.215 +	        if which zipinfo; then
   3.216 +                    # format of zipinfo -T -s-h- output:
   3.217 +                    # -rw-r--r--  2.3 unx    11512 tx defN YYYYMMDD.HHMMSS file 
   3.218 +                    # 1           2   3      4     5  6    7               8
   3.219 +                    zipinfo -T -s-h-t "$archive" | $AWK_PROG -v uuid=$(id -u -n) '
   3.220 +        {
   3.221 +          attr=$1; size=$4
   3.222 +          
   3.223 +          year=substr($7,1,4)
   3.224 +          month=substr($7,5,2)
   3.225 +          day=substr($7,7,2)
   3.226 +          date=year "-" month "-" day
   3.227 +
   3.228 +          hours=substr($7,10,2)
   3.229 +          mins=substr($7,12,2)
   3.230 +          secs=substr($7,14,2)
   3.231 +          time=hours ":" mins ":" secs
   3.232 +
   3.233 +          uid=uuid; gid=uuid; link="-"
   3.234 +          #split line at the time and a space, second item is our name
   3.235 +          split($0, linesplit, ($7 " "))
   3.236 +          name=linesplit[2]
   3.237 +          printf "%s;%s;%s;%s;%s;%s;%s;%s\n",name,size,attr,uid,gid,date,time,link
   3.238 +        }'            
   3.239 +                    exit
   3.240 +		else
   3.241 +                    # format of unzip -l output:
   3.242 +                    # 6622 2005-04-22 12:29:14 file 
   3.243 +                    # 1    2          3        4
   3.244 +                    unzip -l "$archive" | $AWK_PROG -v uuid=$(id -u -n) '
   3.245 +	BEGIN { n = 0}
   3.246 +        {
   3.247 +	  n=n+1
   3.248 +	  attr=""
   3.249 +          uid=uuid; gid=uuid
   3.250 +          size=$1
   3.251 +          date=$2
   3.252 +          time=$3
   3.253 +          
   3.254 +          #this method works with filenames that start with a space (evil!)
   3.255 +          #split line a time and a space
   3.256 +          split($0,linesplit, $3 "   ")
   3.257 +          #then split the second item (name&link) at the space arrow space
   3.258 +          split(linesplit[2], nlsplit, " -> ")
   3.259 +
   3.260 +          name=nlsplit[1]
   3.261 +          link=nlsplit[2]
   3.262 +
   3.263 +          if (! link) {link="-"} #if there was no link set it to a dash
   3.264 +
   3.265 +          if (name != "" && n > 3) printf "%s;%s;%s;%s;%s;%s;%s;%s\n",name,size,attr,uid,gid,date,time,link
   3.266 +        }'
   3.267 +                    exit
   3.268 +		fi
   3.269 +	    fi
   3.270 +        done
   3.271 +
   3.272 +        for ext in $RPM_EXTS; do
   3.273 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.274 +                rpm2cpio "$archive" | cpio -tv | $AWK_PROG '
   3.275 +        {
   3.276 +          attr=$1
   3.277 +          split($2,ids,"/") #split up the 2nd field to get uid/gid
   3.278 +          uid=ids[1]
   3.279 +          gid=ids[2]
   3.280 +          size=$3
   3.281 +          date=$4
   3.282 +          time=$5
   3.283 +          
   3.284 +          #this method works with filenames that start with a space (evil!)
   3.285 +          #split line a time and a space
   3.286 +          split($0,linesplit, $5 " ")
   3.287 +          #then split the second item (name&link) at the space arrow space
   3.288 +          split(linesplit[2], nlsplit, " -> ")
   3.289 +
   3.290 +          name=substr(nlsplit[1],2)
   3.291 +          link=nlsplit[2]
   3.292 +
   3.293 +          if (! link) {link="-"} #if there was no link set it to a dash
   3.294 +
   3.295 +          if (name != "" && uid != "blocks") printf "%s;%s;%s;%s;%s;%s;%s;%s\n",name,size,attr,uid,gid,date,time,link
   3.296 +        }'
   3.297 +                exit
   3.298 +	    fi
   3.299 +        done
   3.300 +
   3.301 +        for ext in $DEB_EXTS; do
   3.302 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.303 +                dpkg-deb -c "$archive" | $AWK_PROG '
   3.304 +        {
   3.305 +          attr=$1
   3.306 +          split($2,ids,"/") #split up the 2nd field to get uid/gid
   3.307 +          uid=ids[1]
   3.308 +          gid=ids[2]
   3.309 +          size=$3
   3.310 +          date=$4
   3.311 +          time=$5
   3.312 +          
   3.313 +          #this method works with filenames that start with a space (evil!)
   3.314 +          #split line a time and a space
   3.315 +          split($0,linesplit, $5 " ")
   3.316 +          #then split the second item (name&link) at the space arrow space
   3.317 +          split(linesplit[2], nlsplit, " -> ")
   3.318 +
   3.319 +          name=substr(nlsplit[1],2)
   3.320 +          link=nlsplit[2]
   3.321 +
   3.322 +          if (! link) {link="-"} #if there was no link set it to a dash
   3.323 +
   3.324 +          printf "%s;%s;%s;%s;%s;%s;%s;%s\n",name,size,attr,uid,gid,date,time,link
   3.325 +        }'
   3.326 +                exit
   3.327 +	    fi
   3.328 +        done
   3.329 +
   3.330 +        for ext in $TAZPKG_EXTS; do
   3.331 +        # format of cpio output:
   3.332 +# lrwxrwxrwx USR/GRP       0 2005-05-12 00:32:03 file -> /path/to/link
   3.333 +# -rw-r--r-- USR/GRP    6622 2005-04-22 12:29:14 file 
   3.334 +# 1          2          3    4          5        6
   3.335 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.336 +                tmpcpio="$(mktemp -d -t cpiotmp.XXXXXX)"
   3.337 +		here="$(pwd)"
   3.338 +		cd $tmpcpio
   3.339 +		cpio -i fs.cpio.gz > /dev/null < "$archive"
   3.340 +                zcat fs.cpio.gz | cpio -tv | $AWK_PROG '
   3.341 +        {
   3.342 +          attr=$1
   3.343 +          split($2,ids,"/") #split up the 2nd field to get uid/gid
   3.344 +          uid=ids[1]
   3.345 +          gid=ids[2]
   3.346 +          size=$3
   3.347 +          date=$4
   3.348 +          time=$5
   3.349 +          
   3.350 +          #this method works with filenames that start with a space (evil!)
   3.351 +          #split line a time and a space
   3.352 +          split($0,linesplit, $5 " ")
   3.353 +          #then split the second item (name&link) at the space arrow space
   3.354 +          split(linesplit[2], nlsplit, " -> ")
   3.355 +
   3.356 +          name=substr(nlsplit[1],3)
   3.357 +          link=nlsplit[2]
   3.358 +
   3.359 +          if (! link) {link="-"} #if there was no link set it to a dash
   3.360 +
   3.361 +          if (name != "" && uid != "blocks") printf "%s;%s;%s;%s;%s;%s;%s;%s\n",name,size,attr,uid,gid,date,time,link
   3.362 +        }'
   3.363 +		cd $here
   3.364 +		rm -rf $tmpcpio
   3.365 +                exit
   3.366 +            fi
   3.367 +	done
   3.368 +        exit $E_UNSUPPORTED
   3.369 +        ;;
   3.370 +
   3.371 +    -a) # add to archive passed files
   3.372 +    	not_busybox tar && \
   3.373 +        for ext in $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS; do
   3.374 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.375 +                # we only want to add the file's basename, not
   3.376 +                # the full path so...
   3.377 +                decompress_func
   3.378 +                while [ "$1" ]; do
   3.379 +                    cd "$(dirname "$1")"
   3.380 +                    tar -rf "$archive" "$(basename "$1")"
   3.381 +                    wrapper_status=$?
   3.382 +                    shift 1
   3.383 +                done
   3.384 +                compress_func
   3.385 +                exit $wrapper_status
   3.386 +	    fi
   3.387 +	done
   3.388 +        which zip >/dev/null && for ext in $ZIP_EXTS; do
   3.389 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.390 +                # we only want to add the file's basename, not
   3.391 +                # the full path so...
   3.392 +                while [ "$1" ]; do
   3.393 +                    cd "$(dirname "$1")"
   3.394 +                    zip -g -r "$archive" "$(basename "$1")"
   3.395 +                    wrapper_status=$?
   3.396 +                    shift 1
   3.397 +                done
   3.398 +                exit $wrapper_status
   3.399 +	    fi
   3.400 +	done
   3.401 +        exit $E_UNSUPPORTED
   3.402 +        ;;
   3.403 +
   3.404 +    -n) # new: create new archive with passed files 
   3.405 +    	not_busybox tar && \
   3.406 +        for ext in $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS; do
   3.407 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.408 +                # create will only be passed the first file, the
   3.409 +                # rest will be "added" to the new archive
   3.410 +                decompress_func
   3.411 +                cd "$(dirname "$1")"
   3.412 +                tar -cf "$archive" "$(basename "$1")"
   3.413 +                wrapper_status=$?
   3.414 +                compress_func
   3.415 +                exit $wrapper_status
   3.416 +	    fi
   3.417 +	done
   3.418 +        which zip >/dev/null && for ext in $ZIP_EXTS; do
   3.419 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.420 +                # create will only be passed the first file, the
   3.421 +                # rest will be "added" to the new archive
   3.422 +                cd "$(dirname "$1")"
   3.423 +                zip -r "$archive" "$(basename "$1")"
   3.424 +	    fi
   3.425 +	done
   3.426 +        exit $E_UNSUPPORTED
   3.427 +        ;;
   3.428 +
   3.429 +    -r) # remove: from archive passed files 
   3.430 +    	not_busybox tar && \
   3.431 +        for ext in $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS; do
   3.432 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.433 +                decompress_func
   3.434 +                tar --delete -f "$archive" "$@"
   3.435 +                wrapper_status=$?
   3.436 +                compress_func
   3.437 +                exit $wrapper_status
   3.438 +	    fi
   3.439 +	done
   3.440 +        which zip >/dev/null && for ext in $ZIP_EXTS; do
   3.441 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.442 +                zip -d "$archive" "$@"
   3.443 +	    fi
   3.444 +	done
   3.445 +        exit $E_UNSUPPORTED
   3.446 +        ;;
   3.447 +
   3.448 +    -e) # extract: from archive passed files 
   3.449 +        for ext in $TAR_EXTS $GZIP_EXTS $BZIP2_EXTS $COMPRESS_EXTS $LZMA_EXTS; do
   3.450 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.451 +                # xarchive will put is the right extract dir
   3.452 +                # so we just have to extract.
   3.453 +                tar -x${TAR_COMPRESS_OPT}f "$archive" "$@" 
   3.454 +                exit $?
   3.455 +	    fi
   3.456 +	done
   3.457 +        for ext in $CPIO_EXTS $CPIOGZ_EXTS; do
   3.458 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.459 +	        if [ -n "$1" ]; then
   3.460 +                    while [ "$1" ]; do
   3.461 +                       $DECOMPRESS "$archive" | cpio -idv "$1"
   3.462 +                       shift 1
   3.463 +                    done
   3.464 +		else
   3.465 +                    $DECOMPRESS "$archive" | cpio -idv
   3.466 +		fi
   3.467 +                exit $?
   3.468 +	    fi
   3.469 +        done
   3.470 +        for ext in $ZIP_EXTS; do
   3.471 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.472 +                # xarchive will put is the right extract dir
   3.473 +                # so we just have to extract.
   3.474 +                unzip -n "$archive" "$@"
   3.475 +                exit $?
   3.476 +	    fi
   3.477 +	done
   3.478 +        for ext in $RPM_EXTS; do
   3.479 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.480 +	        if [ -n "$1" ]; then
   3.481 +                    while [ "$1" ]; do
   3.482 +                       rpm2cpio "$archive" | cpio -idv "$1"
   3.483 +                       shift 1
   3.484 +                    done
   3.485 +		else
   3.486 +                    rpm2cpio "$archive" | cpio -idv
   3.487 +		fi
   3.488 +                exit $?
   3.489 +	    fi
   3.490 +        done
   3.491 +
   3.492 +        for ext in $DEB_EXTS; do
   3.493 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.494 +                dpkg-deb -X "$archive" "$@"
   3.495 +                exit $?
   3.496 +	    fi
   3.497 +	done
   3.498 +        for ext in $TAZPKG_EXTS; do
   3.499 +            if [ $(expr "$lc_archive" : ".*\."$ext"$") -gt 0 ]; then
   3.500 +                tmpcpio="$(mktemp -d -t cpiotmp.XXXXXX)"
   3.501 +		here="$(pwd)"
   3.502 +		cd $tmpcpio
   3.503 +		cpio -i < "$archive" > /dev/null
   3.504 +		zcat fs.cpio.gz | cpio -id > /dev/null
   3.505 +                status=$?
   3.506 +	        if [ -n "$1" ]; then
   3.507 +                    while [ "$1" ]; do
   3.508 +		        dir=$(dirname "$here/$1")
   3.509 +			mkdir -p "$dir" 2> /dev/null
   3.510 +		        mv "fs/$1" "$dir" 2> /dev/null
   3.511 +		    done
   3.512 +		else
   3.513 +		    mv fs/* fs/.* $here 2> /dev/null
   3.514 +		fi
   3.515 +		cd $here
   3.516 +		rm -rf $tmpcpio
   3.517 +		exit $status
   3.518 +	    fi
   3.519 +	done
   3.520 +        exit $E_UNSUPPORTED
   3.521 +        ;;
   3.522 +
   3.523 +     *) echo "error, option $opt not supported"
   3.524 +        echo "use one of these:" 
   3.525 +        echo "-i                #info" 
   3.526 +        echo "-o archive        #open" 
   3.527 +        echo "-a archive files  #add" 
   3.528 +        echo "-n archive file   #new" 
   3.529 +        echo "-r archive files  #remove" 
   3.530 +        echo "-e archive files  #extract" 
   3.531 +        exit
   3.532 +esac
     4.1 --- a/xarchive/stuff/slitaz-xarchive-wrappers-0.2.8-6.patch	Fri Apr 25 17:12:21 2008 +0000
     4.2 +++ b/xarchive/stuff/slitaz-xarchive-wrappers-0.2.8-6.patch	Fri Apr 25 21:50:15 2008 +0000
     4.3 @@ -666,3 +666,14 @@
     4.4   
     4.5   # Command line options for prog functions
     4.6   
     4.7 +--- xarchive-0.2.8-6/xarchive.desktop.src	
     4.8 ++++ xarchive-0.2.8-6/xarchive.desktop.src	
     4.9 +@@ -12,7 +12,7 @@
    4.10 + Comment[en_GB]=Create, modify and browse an archive
    4.11 + GenericName=Archive Manager
    4.12 + 
    4.13 +-Categories=Gtk;Application;System;Utility;
    4.14 ++Categories=Gtk;Utility;
    4.15 + Exec=xarchive %F
    4.16 + Icon=/path/to/icons/xarchive.xpm
    4.17 + StartupNotify=true