tazpkg diff tazpkg-convert @ rev 695
Separate convert functions to tazpkg-convert; functions that are common to the tazpkg and tazpkg-convert moved to libs.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Tue Dec 02 02:22:09 2014 +0200 (2014-12-02) |
parents | |
children | bd0e2ed0e601 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/tazpkg-convert Tue Dec 02 02:22:09 2014 +0200 1.3 @@ -0,0 +1,589 @@ 1.4 +#!/bin/sh 1.5 + 1.6 +# This program is a part of TazPkg. 1.7 +# /usr/bin/tazpkg-convert: toolset to convert alien package to the tazpkg format 1.8 + 1.9 +# Usage: tazpkg-convert alien_package [ target_directory ] 1.10 + 1.11 + 1.12 +PACKAGE_FILE="$1" 1.13 +TARGET_DIR="$2" 1.14 +TMP_DIR=$(mktemp -d) 1.15 +TOP_DIR="$(pwd)" 1.16 + 1.17 +. /etc/slitaz/slitaz.conf 1.18 +. /lib/libtaz.sh 1.19 +. /usr/lib/tazpkg/tazpkg-find-depends 1.20 + 1.21 +# Internationalization. 1.22 +export TEXTDOMAIN='tazpkg' 1.23 + 1.24 + 1.25 +# FIXME: what does this mean? 1.26 +[ -n "$TARGET_DIR" -a -s "$TARGET_DIR/files.list.lzma" ] && TMPLOCALSTATE="$TARGET_DIR" 1.27 + 1.28 + 1.29 +show_unresolved_lib() 1.30 +{ 1.31 + if [ -s $TMP_DIR/unresolved ]; then 1.32 + echo -e "BUGS=\"`gettext \"No dependency for\"`" >> $1 1.33 + sort < $TMP_DIR/unresolved | uniq | \ 1.34 + while read file; do 1.35 + _ 'WARNING: unknown dependency for $lib' 1.36 + echo -n " $file" >> $1 1.37 + done 1.38 + echo "\"" >> $1 1.39 + fi 1.40 +} 1.41 + 1.42 + 1.43 +# convert a .tar.bz2 package to .tazpkg 1.44 + 1.45 +convert_upkg() 1.46 +{ 1.47 + mkdir -p $TMP_DIR/fs 1.48 + tar xjf $PACKAGE_FILE -C $TMP_DIR/fs 1.49 + if [ -d $TMP_DIR/fs/var/lib/upkg/packages ]; then 1.50 + cd $TMP_DIR 1.51 + package="$(sed '/^Package:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)" 1.52 + version="$(sed '/^Version:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)" 1.53 + url="http://www.paldo.org/" 1.54 + file=$package-$version 1.55 + mkdir $file 1.56 + mv fs $file 1.57 + maintainer=nobody@slitaz.org 1.58 + descrip="$package package from paldo." 1.59 + cat > $file/receipt <<EOT 1.60 +# SliTaz package receipt. 1.61 +# generated by tazpkg from package $(basename $PACKAGE_FILE) 1.62 +PACKAGE="$package" 1.63 +VERSION="$version" 1.64 +CATEGORY="misc" 1.65 +SHORT_DESC="$descrip" 1.66 +WEB_SITE="$url" 1.67 +MAINTAINER="$maintainer" 1.68 +DEPENDS="$(find_depends)" 1.69 +EOT 1.70 + [ -s $file/var/lib/upkg/files/*.config.bz2 ] && 1.71 + cat >> $file/receipt <<EOT 1.72 +CONFIG_FILES="$(bzcat $file/var/lib/upkg/files/*.config.bz2)" 1.73 +EOT 1.74 + while read ext func ; do 1.75 + [ -s $file/fs/var/lib/upkg/scripts/*.$ext ] || continue 1.76 + cat >> $file/receipt <<EOT 1.77 + 1.78 +$func() 1.79 +{ 1.80 +$(cat $file/fs/var/lib/upkg/scripts/*.$ext) 1.81 +} 1.82 +EOT 1.83 + done <<EOT 1.84 +prerm pre_remove 1.85 +EOT 1.86 + 1.87 + tazpkg pack $file 1.88 + mv $TMP_DIR/$file.tazpkg $TOP_DIR 1.89 + else 1.90 + _ '$PACKAGE_FILE does not look like an upkg package!' 1.91 + fi 1.92 + cd $TOP_DIR 1.93 + rm -rf $TMP_DIR 1.94 +} 1.95 + 1.96 + 1.97 +# convert a .spack package to .tazpkg 1.98 + 1.99 +convert_spack() 1.100 +{ 1.101 + mkdir -p $TMP_DIR 1.102 + ( cd $TMP_DIR ; cpio -i ) < $PACKAGE_FILE 1.103 + cd $TMP_DIR 1.104 + package="$(sed '$!d;s/:.*//' about.txt)" 1.105 + version="$(basename $PACKAGE_FILE | sed "s/$package-\([^-]*\).*/\1/")" 1.106 + descrip="$(sed '$!d;s/.*: //' about.txt)" 1.107 + url="http://0linux.org/" 1.108 + maintainer=nobody@slitaz.org 1.109 + file=$package-$version 1.110 + mkdir -p $file/fs 1.111 + xzcat files.xz | ( cd $file/fs ; cpio -idmu ) 1.112 + cat > $file/receipt <<EOT 1.113 +# SliTaz package receipt. 1.114 +# generated by tazpkg from package $(basename $PACKAGE_FILE) 1.115 +PACKAGE="$package" 1.116 +VERSION="$version" 1.117 +CATEGORY="misc" 1.118 +SHORT_DESC="$descrip" 1.119 +WEB_SITE="$url" 1.120 +MAINTAINER="$maintainer" 1.121 +DEPENDS="$(find_depends)" 1.122 +EOT 1.123 + [ -s pre-install.sh ] && cat >> $file/receipt <<EOT 1.124 + 1.125 +pre_install() 1.126 +{ 1.127 + cd / 1.128 +$(sed 1d pre-install.sh) 1.129 +} 1.130 +EOT 1.131 + [ -s post-install.sh ] && cat >> $file/receipt <<EOT 1.132 + 1.133 +post_install() 1.134 +{ 1.135 + cd / 1.136 +$(sed '1,/^}/d' post-install.sh) 1.137 +} 1.138 +EOT 1.139 + tazpkg pack $file 1.140 + cd $TOP_DIR 1.141 + mv $TMP_DIR/$file.tazpkg . 1.142 + rm -rf $TMP_DIR 1.143 +} 1.144 + 1.145 + 1.146 +# convert a .ipk package to .tazpkg 1.147 + 1.148 +convert_ipk() 1.149 +{ 1.150 + mkdir -p $TMP_DIR 1.151 + tar xOzf $PACKAGE_FILE ./control.tar.gz | tar xzf - -C $TMP_DIR 1.152 + package="$(grep ^Package $TMP_DIR/control | sed 's/.*: //')" 1.153 + version="$(grep ^Version $TMP_DIR/control | sed 's/.*: //')" 1.154 + maintainer="$(grep ^Maintainer $TMP_DIR/control | sed 's/.*: //')" 1.155 + target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')" 1.156 + descrip="$(grep ^Description $TMP_DIR/control | sed 's/.*: //')" 1.157 + url="http://openwrt.org/" 1.158 + case "$target" in 1.159 + i386|all) 1.160 + file=$package-$version 1.161 + mkdir -p $TMP_DIR/$file/fs 1.162 + tar xOzf $PACKAGE_FILE ./data.tar.gz | tar xzf - -C $TMP_DIR/$file/fs 1.163 + cd $TMP_DIR 1.164 + cat > $file/receipt <<EOT 1.165 +# SliTaz package receipt. 1.166 +# generated by tazpkg from package $(basename $PACKAGE_FILE) 1.167 +PACKAGE="$package" 1.168 +VERSION="$version" 1.169 +CATEGORY="misc" 1.170 +SHORT_DESC="$descrip" 1.171 +WEB_SITE="$url" 1.172 +MAINTAINER="$maintainer" 1.173 +DEPENDS="$(find_depends)" 1.174 +EOT 1.175 + show_unresolved_lib $file/receipt 1.176 + [ -s conffiles ] && cat >> $file/receipt <<EOT 1.177 +CONFIG_FILES="$(cat conffiles)" 1.178 +EOT 1.179 + show_unresolved_lib $file/receipt 1.180 + while read script func; do 1.181 + [ -s $script ] && cat >> $file/receipt <<EOT 1.182 + 1.183 +$func() 1.184 +{ 1.185 +$(cat $script) 1.186 +} 1.187 +EOT 1.188 + done <<EOT 1.189 +preinst pre_install 1.190 +postinst post_install 1.191 +prerm pre_remove 1.192 +postrm post_remove 1.193 +EOT 1.194 + awk ' 1.195 +{ 1.196 + if (/^ / && show) print substr($0,2); 1.197 + else show=0; 1.198 + if (/^Description/) show=1; 1.199 +}' < $TMP_DIR/control > $file/description.txt 1.200 + sed -i 's/^\.$//' $file/description.txt 1.201 + [ -s $file/description.txt ] || rm -f $file/description.txt 1.202 + tazpkg pack $file 1.203 + cd $TOP_DIR 1.204 + mv $TMP_DIR/$file.tazpkg . 1.205 + ;; 1.206 + *) 1.207 + _ 'Invalid target: $target (expected i386)' 1.208 + ;; 1.209 + esac 1.210 + rm -rf $TMP_DIR 1.211 +} 1.212 + 1.213 + 1.214 +# convert a .pkg.tar.gz/.pkg.tar.xz/.apk package to .tazpkg 1.215 + 1.216 +convert_arch() 1.217 +{ 1.218 + mkdir -p $TMP_DIR/fs 1.219 + busybox tar xf $PACKAGE_FILE -C $TMP_DIR/fs 1.220 + if [ -f $TMP_DIR/fs/.PKGINFO ]; then 1.221 + cd $TMP_DIR 1.222 + package="$(grep ^pkgname fs/.PKGINFO | sed 's/.*= //')" 1.223 + version="$(grep ^pkgver fs/.PKGINFO | sed 's/.*= //')" 1.224 + descrip="$(grep ^pkgdesc fs/.PKGINFO | sed 's/.*= //')" 1.225 + url="$(grep ^url fs/.PKGINFO | sed 's/.*= //')" 1.226 + maintainer="$(grep ^packager fs/.PKGINFO | sed 's/.*= //')" 1.227 + file=$package-$version 1.228 + mkdir $file 1.229 + mv fs $file 1.230 + cat > $file/receipt <<EOT 1.231 +# SliTaz package receipt. 1.232 +# generated by tazpkg from Archlinux package $(basename $PACKAGE_FILE) 1.233 +PACKAGE="$package" 1.234 +VERSION="$version" 1.235 +CATEGORY="misc" 1.236 +SHORT_DESC="$descrip" 1.237 +WEB_SITE="$url" 1.238 +MAINTAINER="$maintainer" 1.239 +DEPENDS="$(find_depends)" 1.240 +EOT 1.241 + show_unresolved_lib $file/receipt 1.242 + rm -f $file/fs/.[A-Z]* 1.243 + tazpkg pack $file 1.244 + mv $file.tazpkg $TOP_DIR 1.245 + else 1.246 + _ '$PACKAGE_FILE does not look like an Archlinux/Alpine package!' 1.247 + fi 1.248 + cd $TOP_DIR 1.249 + rm -rf $TMP_DIR 1.250 +} 1.251 + 1.252 + 1.253 +# get package and version from PACKAGE_FILE 1.254 + 1.255 +parse_pkgname() 1.256 +{ 1.257 + package=$(basename ${2:-$PACKAGE_FILE} $1) 1.258 + IFS='-' 1.259 + set -- $package 1.260 + unset IFS 1.261 + package=$1 1.262 + version=$2 1.263 + if [ -z "$version" ]; then 1.264 + package=${1%%[0-9\.]*} 1.265 + version=${1#$package} 1.266 + fi 1.267 + file="$package-$version" 1.268 + mkdir $file 1.269 +} 1.270 + 1.271 + 1.272 +finish_convert_puppy() 1.273 +{ 1.274 + rm -f fs/*.specs 1.275 + mv fs $file 1.276 + cat > $file/receipt <<EOT 1.277 +# SliTaz package receipt. 1.278 +# generated by tazpkg from puppy package $(basename $PACKAGE_FILE) 1.279 +PACKAGE="$package" 1.280 +VERSION="$version" 1.281 +CATEGORY="misc" 1.282 +SHORT_DESC="$desc" 1.283 +WEB_SITE="http://puppylinux.org/" 1.284 +MAINTAINER="nobody@slitaz.org" 1.285 +DEPENDS="$(find_depends)" 1.286 +EOT 1.287 + show_unresolved_lib $file/receipt 1.288 + for i in install uninstall ; do 1.289 + [ -f $file/fs/p$i.sh ] && cat >> $file/receipt <<EOM 1.290 + 1.291 +post_$i() 1.292 +{ 1.293 +chroot \$1/ sh - << EOT 1.294 +cd / 1.295 +$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/p$i.sh ; rm -f $file/fs/p$i.sh) 1.296 +EOT 1.297 +} 1.298 +EOM 1.299 + done 1.300 + sed -i 's/post_uninstall/post_remove/' $file/receipt 1.301 + tazpkg pack $file 1.302 + mv $file.tazpkg $TOP_DIR 1.303 + cd $TOP_DIR 1.304 + rm -rf $TMP_DIR 1.305 +} 1.306 + 1.307 + 1.308 +# convert a .sfs package to .tazpkg 1.309 + 1.310 +convert_sfs() 1.311 +{ 1.312 + [ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs 1.313 + if ! unsquashfs -l $PACKAGE_FILE | grep -q squashfs-root/pet.specs$ ; then 1.314 + _ '$PACKAGE_FILE does not look like a Puppy package!' 1.315 + return 1 1.316 + fi 1.317 + mkdir -p $TMP_DIR 1.318 + cd $TMP_DIR 1.319 + parse_pkgname .sfs 1.320 + unsquashfs $PACKAGE_FILE 1.321 + mv squashfs-root fs 1.322 + set -- $(cat fs/pet.specs) 1.323 + desc="$10" 1.324 + finish_convert_puppy 1.325 +} 1.326 + 1.327 + 1.328 +# convert a .pet package to .tazpkg 1.329 + 1.330 +convert_pet() 1.331 +{ 1.332 + mkdir -p $TMP_DIR 1.333 + cd $TMP_DIR 1.334 + parse_pkgname .pet 1.335 + tar xzf $PACKAGE_FILE 2> /dev/null 1.336 + . $package*/*.specs 1.337 + desc="$PETMENUDESCR" 1.338 + mv $package*/ fs 1.339 + finish_convert_puppy 1.340 +} 1.341 + 1.342 + 1.343 +# convert a .sb package to .tazpkg 1.344 + 1.345 +convert_sb() 1.346 +{ 1.347 + [ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs 1.348 + if ! unsquashfs -l $PACKAGE_FILE | grep -q squashfs-root/var/log/removed_scripts ; then 1.349 + _ '$PACKAGE_FILE does not look like a Slax package!' 1.350 + return 1 1.351 + fi 1.352 + mkdir -p $TMP_DIR 1.353 + cd $TMP_DIR 1.354 + unsquashfs $PACKAGE_FILE 1.355 + mv squashfs-root fs 1.356 + parse_pkgname '' $(cat fs/var/log/packages/* | sed '/PACKAGE NAME:/!d;s/.*: *//') 1.357 + desc="$(cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,$!d;N;s/.*: //;q')" 1.358 + cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,/FILE LIST/!d;s/.*://;/^$/d' > $file/description.txt 1.359 + mv fs $file 1.360 + cat > $file/receipt <<EOT 1.361 +# SliTaz package receipt. 1.362 +# generated by tazpkg from slax package $(basename $PACKAGE_FILE) 1.363 +PACKAGE="$package" 1.364 +VERSION="$version" 1.365 +CATEGORY="misc" 1.366 +SHORT_DESC="$desc" 1.367 +WEB_SITE="http://www.slax.org/" 1.368 +MAINTAINER="nobody@slitaz.org" 1.369 +DEPENDS="$(find_depends)" 1.370 +EOT 1.371 + show_unresolved_lib $file/receipt 1.372 + [ -f $file/fs/var/log/scripts/$package* ] && cat >> $file/receipt <<EOM 1.373 + 1.374 +post_install() 1.375 +{ 1.376 +chroot \$1/ sh - << EOT 1.377 +cd / 1.378 +$(cat $file/fs/var/log/scripts/$package* | sed -e 's/\\/\\\\/g' | sed -e 's/\$/\\$/g') 1.379 +EOT 1.380 +} 1.381 +EOM 1.382 + tazpkg pack $file 1.383 + mv $file.tazpkg $TOP_DIR 1.384 + cd $TOP_DIR 1.385 + rm -rf $TMP_DIR 1.386 +} 1.387 + 1.388 + 1.389 +# convert a .tgz package to .tazpkg 1.390 + 1.391 +convert_tgz() 1.392 +{ 1.393 + parse_pkgname 1.394 + mkdir -p $TMP_DIR/$file/fs 1.395 + tar xzf $PACKAGE_FILE -C $TMP_DIR/$file/fs 1.396 + cd $TMP_DIR 1.397 + if [ -d $file/fs/install ]; then 1.398 + descrip=$(grep ^$package $file/fs/install/slack-desc | \ 1.399 + head -1 | sed 's/.*(\(.*\)).*/\1/') 1.400 + cat > $file/receipt <<EOT 1.401 +# SliTaz package receipt. 1.402 +# generated by tazpkg from slackware package $(basename $PACKAGE_FILE) 1.403 +PACKAGE="$package" 1.404 +VERSION="$version" 1.405 +CATEGORY="misc" 1.406 +SHORT_DESC="$descrip" 1.407 +WEB_SITE="http://www.slackware.com/packages/" 1.408 +MAINTAINER="nobody@slitaz.org" 1.409 +DEPENDS="$(find_depends)" 1.410 +EOT 1.411 + show_unresolved_lib $file/receipt 1.412 + [ -f $file/fs/install/doinst.sh ] && cat >> $file/receipt <<EOM 1.413 + 1.414 +post_install() 1.415 +{ 1.416 +chroot \$1/ sh - << EOT 1.417 +cd / 1.418 +$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/install/doinst.sh) 1.419 +EOT 1.420 +} 1.421 +EOM 1.422 + grep ^$package $file/fs/install/slack-desc | \ 1.423 + sed "s/^$package://" > $file/description.txt 1.424 + [ -s $file/description.txt ] || rm -f $file/description.txt 1.425 + rm -rf $file/fs/install 1.426 + tazpkg pack $file 1.427 + mv $file.tazpkg $TOP_DIR 1.428 + else 1.429 + _ '$PACKAGE_FILE does not look like a Slackware package!' 1.430 + fi 1.431 + cd $TOP_DIR 1.432 + rm -rf $TMP_DIR 1.433 +} 1.434 + 1.435 + 1.436 +# convert a .deb package to .tazpkg 1.437 + 1.438 +convert_deb() 1.439 +{ 1.440 + mkdir -p $TMP_DIR 1.441 + dpkg-deb -e $PACKAGE_FILE $TMP_DIR 1.442 + package=$(grep '^ *Package:' $TMP_DIR/control) 1.443 + package=$(echo ${package##*:}) 1.444 + version=$(grep '^ *Version:' $TMP_DIR/control) 1.445 + version=$(echo ${version##*:}) 1.446 + descrip=$(grep '^ *Description:' $TMP_DIR/control) 1.447 + descrip=$(echo ${descrip##*:}) 1.448 + target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')" 1.449 + case "$target" in 1.450 + i386|all) 1.451 + file="$package-$version" 1.452 + mkdir -p $TMP_DIR/$file/fs/ 1.453 + dpkg-deb -x $PACKAGE_FILE $TMP_DIR/$file/fs 1.454 + cd $TMP_DIR 1.455 + cat > $file/receipt <<EOT 1.456 +# SliTaz package receipt. 1.457 +# generated by tazpkg from debian package $(basename $PACKAGE_FILE) 1.458 +PACKAGE="$package" 1.459 +VERSION="$version" 1.460 +CATEGORY="misc" 1.461 +SHORT_DESC="$descrip" 1.462 +WEB_SITE="http://packages.debian.org/search?keywords=$package" 1.463 +MAINTAINER="nobody@slitaz.org" 1.464 +EOT 1.465 + LICENSE="$(grep /usr/share/common-licenses/ \ 1.466 + $PACKAGE_FILE $TMP_DIR/$file/fs/usr/share/doc/*/copyright | \ 1.467 + sed 's|.*common-licenses/\([-\.A-Za-z0-9]*\).*|\1|;s|[-\.]$||q')" 1.468 + [ -n "$LICENSE" ] && echo "LICENSE=\"$LICENSE\"" >> $file/receipt 1.469 + echo "DEPENDS=\"$(find_depends)\"" >> $file/receipt 1.470 + [ -s conffiles ] && cat >> $file/receipt <<EOT 1.471 +CONFIG_FILES="$(cat conffiles)" 1.472 +EOT 1.473 + show_unresolved_lib $file/receipt 1.474 + awk ' 1.475 +{ 1.476 + if (/^ / && show) print substr($0,2); 1.477 + else show=0; 1.478 + if (/^Description/) show=1; 1.479 +}' < $TMP_DIR/control > $file/description.txt 1.480 + sed -i 's/^\.$//' $file/description.txt 1.481 + [ -s $file/description.txt ] || rm -f $file/description.txt 1.482 + tazpkg pack $file 1.483 + mv $file.tazpkg $TOP_DIR 1.484 + ;; 1.485 + *) 1.486 + _ 'Invalid target: $target (expected i386)' 1.487 + ;; 1.488 + esac 1.489 + cd $TOP_DIR 1.490 + rm -rf $TMP_DIR 1.491 +} 1.492 + 1.493 + 1.494 +# convert a .rpm package to .tazpkg 1.495 + 1.496 +convert_rpm() 1.497 +{ 1.498 + mkdir -p $TMP_DIR 1.499 + cp $PACKAGE_FILE $TMP_DIR 1.500 + PACKAGE_FILE=$TMP_DIR/$(basename $PACKAGE_FILE) 1.501 + rpm -qip $PACKAGE_FILE | awk -v pkg=$(basename $PACKAGE_FILE) ' 1.502 +BEGIN { 1.503 + goturl=0; 1.504 + printf "# SliTaz package receipt.\n"; 1.505 + printf "# generated by tazpkg from rpm package %s\n",pkg; 1.506 +} 1.507 +{ 1.508 + if (/^Name/) { name=$3; printf "PACKAGE=\"%s\"\n",$3; } 1.509 + if (/^Version/) printf "VERSION=\"%s-",$3; 1.510 + if (/^Release/) printf "%s\"\n",$3; 1.511 + if (/^Summary/) printf "SHORT_DESC=\"%s\"\n",substr($0,15); 1.512 + if (/^URL/) { goturl=1; printf "WEB_SITE=\"%s\"\n",$3; } 1.513 +} 1.514 +END { 1.515 + if (goturl == 0) 1.516 + printf "WEB_SITE=\"http://rpmfind.net/linux/rpm2html/search.php?query=%s\"\n",name; 1.517 + printf "CATEGORY=\"misc\"\n"; 1.518 + printf "MAINTAINER=\"nobody@slitaz.org\"\n"; 1.519 +} 1.520 +' > $TMP_DIR/receipt 1.521 + . $TMP_DIR/receipt 1.522 + file=$PACKAGE-$VERSION 1.523 + mkdir -p $TMP_DIR/$file/fs/ 1.524 + mv $TMP_DIR/receipt $TMP_DIR/$file 1.525 + rpm -qip $PACKAGE_FILE | awk ' 1.526 +BEGIN { show=0 } 1.527 +{ 1.528 + if (show) print; 1.529 + if (/^Description/) show=1; 1.530 +} 1.531 +' > $TMP_DIR/$file/description.txt 1.532 + cd $TMP_DIR/$file/fs/ 1.533 + rpm2cpio $PACKAGE_FILE | cpio -idm --quiet 1.534 + # rpm2cpio can't extract some new RPMs 1.535 + if [ $? == 1 ]; then 1.536 + if [ ! -e $INSTALLED/p7zip-full/receipt ]; then 1.537 + boldify $(_ 'Unable to extract the RPM using standard tools (rpm2cpio).') 1.538 + _n "Do you want to install 'p7zip-full' package"; confirm 1.539 + if [ $? = 0 ]; then 1.540 + tazpkg -gi p7zip-full 1.541 + else 1.542 + rm -rf $TMP_DIR 1.543 + exit 1 1.544 + fi 1.545 + fi 1.546 + # we may already have 7z or may have just installed it in the step above 1.547 + if [ -e $INSTALLED/p7zip-full/receipt ]; then 1.548 + 7z x -so $PACKAGE_FILE | cpio -idm --quiet 1.549 + fi 1.550 + fi 1.551 + cd ../.. 1.552 + echo "DEPENDS=\"$(find_depends)\"" >> $TMP_DIR/$file/receipt 1.553 + show_unresolved_lib $TMP_DIR/$file/receipt 1.554 + tazpkg pack $file 1.555 + mv $file.tazpkg $TOP_DIR 1.556 + cd $TOP_DIR 1.557 + rm -rf $TMP_DIR 1.558 +} 1.559 + 1.560 + 1.561 + 1.562 + 1.563 +if [ "$(dd if=$PACKAGE_FILE bs=8 count=1 skip=1 2> /dev/null)" == "debian-b" ]; then 1.564 + convert_deb 1.565 +else 1.566 + case "$PACKAGE_FILE" in 1.567 + *.deb|*.udeb) 1.568 + convert_deb;; 1.569 + *.rpm) 1.570 + convert_rpm;; 1.571 + *.sb) 1.572 + convert_sb;; 1.573 + *.sfs) 1.574 + convert_sfs;; 1.575 + *.pet) 1.576 + convert_pet;; 1.577 + *.tgz) 1.578 + convert_tgz;; 1.579 + *.apk|*.pkg.tar.gz|*.pkg.tar.xz) 1.580 + convert_arch;; 1.581 + *.ipk|*.opk) 1.582 + convert_ipk;; 1.583 + *.spack) 1.584 + convert_spack;; 1.585 + *.tar.bz2) 1.586 + convert_upkg;; 1.587 + *) 1.588 + _ 'Unsupported format' ;; 1.589 + esac 1.590 +fi 1.591 + 1.592 +exit 0