tazpkg rev 296
Add convert ipk
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Sep 12 22:39:30 2009 +0200 (2009-09-12) |
parents | 3814100d92c5 |
children | 14cd3fec0297 |
files | tazpkg |
line diff
1.1 --- a/tazpkg Sat Aug 29 15:27:00 2009 +0200 1.2 +++ b/tazpkg Sat Sep 12 22:39:30 2009 +0200 1.3 @@ -1003,6 +1003,72 @@ 1.4 fi 1.5 } 1.6 1.7 +# convert a .ipk package to .tazpkg 1.8 +convert_ipk() 1.9 +{ 1.10 + mkdir -p $TMP_DIR 1.11 + tar xOzf $PACKAGE_FILE ./control.tar.gz | tar xzf - -C $TMP_DIR 1.12 + package="$(grep ^Package $TMP_DIR/control | sed 's/.*: //')" 1.13 + version="$(grep ^Version $TMP_DIR/control | sed 's/.*: //')" 1.14 + maintainer="$(grep ^Maintainer $TMP_DIR/control | sed 's/.*: //')" 1.15 + target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')" 1.16 + descrip="$(grep ^Description $TMP_DIR/control | sed 's/.*: //')" 1.17 + url="http://openwrt.org/" 1.18 + case "$target" in 1.19 + i386|all) 1.20 + file=$package-$version 1.21 + mkdir -p $TMP_DIR/$file/fs 1.22 + tar xOzf $PACKAGE_FILE ./data.tar.gz | \ 1.23 + tar xzf - -C $TMP_DIR/$file/fs 1.24 + cd $TMP_DIR 1.25 + cat > $file/receipt <<EOT 1.26 +# SliTaz package receipt. 1.27 +# generated by tazpkg from package $(basename $PACKAGE_FILE) 1.28 +PACKAGE="$package" 1.29 +VERSION="$version" 1.30 +CATEGORY="misc" 1.31 +SHORT_DESC="$descrip" 1.32 +WEB_SITE="$url" 1.33 +MAINTAINER="$maintainer" 1.34 +DEPENDS="$(find_depends)" 1.35 +EOT 1.36 + [ -s conffiles ] && cat >> $file/receipt <<EOT 1.37 +CONFIG_FILES="$(cat conffiles)" 1.38 +EOT 1.39 + show_unresolved_lib $file/receipt 1.40 + while read script func; do 1.41 + [ -s $script ] && cat >> $file/receipt <<EOT 1.42 + 1.43 +$func() 1.44 +{ 1.45 +$(cat $script) 1.46 +} 1.47 +EOT 1.48 + done <<EOT 1.49 +preinst pre_install 1.50 +postinst post_install 1.51 +prerm pre_remove 1.52 +postrm post_remove 1.53 +EOT 1.54 + awk ' 1.55 +{ 1.56 + if (/^ / && show) print substr($0,2); 1.57 + else show=0; 1.58 + if (/^Description/) show=1; 1.59 +}' < $TMP_DIR/control > $file/description.txt 1.60 + sed -i 's/^\.$//' $file/description.txt 1.61 + [ -s $file/description.txt ] || rm -f $file/description.txt 1.62 + tazpkg pack $file 1.63 + cd $TOP_DIR 1.64 + mv $TMP_DIR/$file.tazpkg . 1.65 + ;; 1.66 + *) 1.67 + echo "Invalid target: $target (expected i386)" 1.68 + ;; 1.69 + esac 1.70 + rm -rf $TMP_DIR 1.71 +} 1.72 + 1.73 # convert a .pkg.tar.gz package to .tazpkg 1.74 convert_arch() 1.75 { 1.76 @@ -1080,6 +1146,7 @@ 1.77 EOM 1.78 grep ^$package $file/fs/install/slack-desc | \ 1.79 sed "s/^$package://" > $file/description.txt 1.80 + [ -s $file/description.txt ] || rm -f $file/description.txt 1.81 rm -rf $file/fs/install 1.82 tazpkg pack $file 1.83 mv $file.tazpkg $TOP_DIR 1.84 @@ -1101,11 +1168,14 @@ 1.85 version=$(echo ${version##*:}) 1.86 descrip=$(grep '^ *Description' $TMP_DIR/control) 1.87 descrip=$(echo ${descrip##*:}) 1.88 - file="$package-$version" 1.89 - mkdir -p $TMP_DIR/$file/fs/ 1.90 - dpkg-deb -x $PACKAGE_FILE $TMP_DIR/$file/fs 1.91 - cd $TMP_DIR 1.92 - cat > $file/receipt <<EOT 1.93 + target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')" 1.94 + case "$target" in 1.95 + i386|all) 1.96 + file="$package-$version" 1.97 + mkdir -p $TMP_DIR/$file/fs/ 1.98 + dpkg-deb -x $PACKAGE_FILE $TMP_DIR/$file/fs 1.99 + cd $TMP_DIR 1.100 + cat > $file/receipt <<EOT 1.101 # SliTaz package receipt. 1.102 # generated by tazpkg from debian package $(basename $PACKAGE_FILE) 1.103 PACKAGE="$package" 1.104 @@ -1116,16 +1186,25 @@ 1.105 MAINTAINER="nobody@slitaz.org" 1.106 DEPENDS="$(find_depends)" 1.107 EOT 1.108 - show_unresolved_lib $file/receipt 1.109 - awk ' 1.110 + [ -s conffiles ] && cat >> $file/receipt <<EOT 1.111 +CONFIG_FILES="$(cat conffiles)" 1.112 +EOT 1.113 + show_unresolved_lib $file/receipt 1.114 + awk ' 1.115 { 1.116 if (/^ / && show) print substr($0,2); 1.117 else show=0; 1.118 if (/^Description/) show=1; 1.119 }' < $TMP_DIR/control > $file/description.txt 1.120 - sed -i 's/^\.$//' $file/description.txt 1.121 - tazpkg pack $file 1.122 - mv $file.tazpkg $TOP_DIR 1.123 + sed -i 's/^\.$//' $file/description.txt 1.124 + [ -s $file/description.txt ] || rm -f $file/description.txt 1.125 + tazpkg pack $file 1.126 + mv $file.tazpkg $TOP_DIR 1.127 + ;; 1.128 + *) 1.129 + echo "Invalid target: $target (expected i386)" 1.130 + ;; 1.131 + esac 1.132 cd $TOP_DIR 1.133 rm -rf $TMP_DIR 1.134 } 1.135 @@ -2492,6 +2571,8 @@ 1.136 convert_tgz;; 1.137 *.pkg.tar.gz) 1.138 convert_arch;; 1.139 + *.ipk|*.opk) 1.140 + convert_ipk;; 1.141 *) 1.142 echo "Unsupported format";; 1.143 esac