tazpkg annotate 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
rev   line source
al@695 1 #!/bin/sh
al@695 2
al@695 3 # This program is a part of TazPkg.
al@695 4 # /usr/bin/tazpkg-convert: toolset to convert alien package to the tazpkg format
al@695 5
al@695 6 # Usage: tazpkg-convert alien_package [ target_directory ]
al@695 7
al@695 8
al@695 9 PACKAGE_FILE="$1"
al@695 10 TARGET_DIR="$2"
al@695 11 TMP_DIR=$(mktemp -d)
al@695 12 TOP_DIR="$(pwd)"
al@695 13
al@695 14 . /etc/slitaz/slitaz.conf
al@695 15 . /lib/libtaz.sh
al@695 16 . /usr/lib/tazpkg/tazpkg-find-depends
al@695 17
al@695 18 # Internationalization.
al@695 19 export TEXTDOMAIN='tazpkg'
al@695 20
al@695 21
al@695 22 # FIXME: what does this mean?
al@695 23 [ -n "$TARGET_DIR" -a -s "$TARGET_DIR/files.list.lzma" ] && TMPLOCALSTATE="$TARGET_DIR"
al@695 24
al@695 25
al@695 26 show_unresolved_lib()
al@695 27 {
al@695 28 if [ -s $TMP_DIR/unresolved ]; then
al@695 29 echo -e "BUGS=\"`gettext \"No dependency for\"`" >> $1
al@695 30 sort < $TMP_DIR/unresolved | uniq | \
al@695 31 while read file; do
al@695 32 _ 'WARNING: unknown dependency for $lib'
al@695 33 echo -n " $file" >> $1
al@695 34 done
al@695 35 echo "\"" >> $1
al@695 36 fi
al@695 37 }
al@695 38
al@695 39
al@695 40 # convert a .tar.bz2 package to .tazpkg
al@695 41
al@695 42 convert_upkg()
al@695 43 {
al@695 44 mkdir -p $TMP_DIR/fs
al@695 45 tar xjf $PACKAGE_FILE -C $TMP_DIR/fs
al@695 46 if [ -d $TMP_DIR/fs/var/lib/upkg/packages ]; then
al@695 47 cd $TMP_DIR
al@695 48 package="$(sed '/^Package:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)"
al@695 49 version="$(sed '/^Version:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)"
al@695 50 url="http://www.paldo.org/"
al@695 51 file=$package-$version
al@695 52 mkdir $file
al@695 53 mv fs $file
al@695 54 maintainer=nobody@slitaz.org
al@695 55 descrip="$package package from paldo."
al@695 56 cat > $file/receipt <<EOT
al@695 57 # SliTaz package receipt.
al@695 58 # generated by tazpkg from package $(basename $PACKAGE_FILE)
al@695 59 PACKAGE="$package"
al@695 60 VERSION="$version"
al@695 61 CATEGORY="misc"
al@695 62 SHORT_DESC="$descrip"
al@695 63 WEB_SITE="$url"
al@695 64 MAINTAINER="$maintainer"
al@695 65 DEPENDS="$(find_depends)"
al@695 66 EOT
al@695 67 [ -s $file/var/lib/upkg/files/*.config.bz2 ] &&
al@695 68 cat >> $file/receipt <<EOT
al@695 69 CONFIG_FILES="$(bzcat $file/var/lib/upkg/files/*.config.bz2)"
al@695 70 EOT
al@695 71 while read ext func ; do
al@695 72 [ -s $file/fs/var/lib/upkg/scripts/*.$ext ] || continue
al@695 73 cat >> $file/receipt <<EOT
al@695 74
al@695 75 $func()
al@695 76 {
al@695 77 $(cat $file/fs/var/lib/upkg/scripts/*.$ext)
al@695 78 }
al@695 79 EOT
al@695 80 done <<EOT
al@695 81 prerm pre_remove
al@695 82 EOT
al@695 83
al@695 84 tazpkg pack $file
al@695 85 mv $TMP_DIR/$file.tazpkg $TOP_DIR
al@695 86 else
al@695 87 _ '$PACKAGE_FILE does not look like an upkg package!'
al@695 88 fi
al@695 89 cd $TOP_DIR
al@695 90 rm -rf $TMP_DIR
al@695 91 }
al@695 92
al@695 93
al@695 94 # convert a .spack package to .tazpkg
al@695 95
al@695 96 convert_spack()
al@695 97 {
al@695 98 mkdir -p $TMP_DIR
al@695 99 ( cd $TMP_DIR ; cpio -i ) < $PACKAGE_FILE
al@695 100 cd $TMP_DIR
al@695 101 package="$(sed '$!d;s/:.*//' about.txt)"
al@695 102 version="$(basename $PACKAGE_FILE | sed "s/$package-\([^-]*\).*/\1/")"
al@695 103 descrip="$(sed '$!d;s/.*: //' about.txt)"
al@695 104 url="http://0linux.org/"
al@695 105 maintainer=nobody@slitaz.org
al@695 106 file=$package-$version
al@695 107 mkdir -p $file/fs
al@695 108 xzcat files.xz | ( cd $file/fs ; cpio -idmu )
al@695 109 cat > $file/receipt <<EOT
al@695 110 # SliTaz package receipt.
al@695 111 # generated by tazpkg from package $(basename $PACKAGE_FILE)
al@695 112 PACKAGE="$package"
al@695 113 VERSION="$version"
al@695 114 CATEGORY="misc"
al@695 115 SHORT_DESC="$descrip"
al@695 116 WEB_SITE="$url"
al@695 117 MAINTAINER="$maintainer"
al@695 118 DEPENDS="$(find_depends)"
al@695 119 EOT
al@695 120 [ -s pre-install.sh ] && cat >> $file/receipt <<EOT
al@695 121
al@695 122 pre_install()
al@695 123 {
al@695 124 cd /
al@695 125 $(sed 1d pre-install.sh)
al@695 126 }
al@695 127 EOT
al@695 128 [ -s post-install.sh ] && cat >> $file/receipt <<EOT
al@695 129
al@695 130 post_install()
al@695 131 {
al@695 132 cd /
al@695 133 $(sed '1,/^}/d' post-install.sh)
al@695 134 }
al@695 135 EOT
al@695 136 tazpkg pack $file
al@695 137 cd $TOP_DIR
al@695 138 mv $TMP_DIR/$file.tazpkg .
al@695 139 rm -rf $TMP_DIR
al@695 140 }
al@695 141
al@695 142
al@695 143 # convert a .ipk package to .tazpkg
al@695 144
al@695 145 convert_ipk()
al@695 146 {
al@695 147 mkdir -p $TMP_DIR
al@695 148 tar xOzf $PACKAGE_FILE ./control.tar.gz | tar xzf - -C $TMP_DIR
al@695 149 package="$(grep ^Package $TMP_DIR/control | sed 's/.*: //')"
al@695 150 version="$(grep ^Version $TMP_DIR/control | sed 's/.*: //')"
al@695 151 maintainer="$(grep ^Maintainer $TMP_DIR/control | sed 's/.*: //')"
al@695 152 target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')"
al@695 153 descrip="$(grep ^Description $TMP_DIR/control | sed 's/.*: //')"
al@695 154 url="http://openwrt.org/"
al@695 155 case "$target" in
al@695 156 i386|all)
al@695 157 file=$package-$version
al@695 158 mkdir -p $TMP_DIR/$file/fs
al@695 159 tar xOzf $PACKAGE_FILE ./data.tar.gz | tar xzf - -C $TMP_DIR/$file/fs
al@695 160 cd $TMP_DIR
al@695 161 cat > $file/receipt <<EOT
al@695 162 # SliTaz package receipt.
al@695 163 # generated by tazpkg from package $(basename $PACKAGE_FILE)
al@695 164 PACKAGE="$package"
al@695 165 VERSION="$version"
al@695 166 CATEGORY="misc"
al@695 167 SHORT_DESC="$descrip"
al@695 168 WEB_SITE="$url"
al@695 169 MAINTAINER="$maintainer"
al@695 170 DEPENDS="$(find_depends)"
al@695 171 EOT
al@695 172 show_unresolved_lib $file/receipt
al@695 173 [ -s conffiles ] && cat >> $file/receipt <<EOT
al@695 174 CONFIG_FILES="$(cat conffiles)"
al@695 175 EOT
al@695 176 show_unresolved_lib $file/receipt
al@695 177 while read script func; do
al@695 178 [ -s $script ] && cat >> $file/receipt <<EOT
al@695 179
al@695 180 $func()
al@695 181 {
al@695 182 $(cat $script)
al@695 183 }
al@695 184 EOT
al@695 185 done <<EOT
al@695 186 preinst pre_install
al@695 187 postinst post_install
al@695 188 prerm pre_remove
al@695 189 postrm post_remove
al@695 190 EOT
al@695 191 awk '
al@695 192 {
al@695 193 if (/^ / && show) print substr($0,2);
al@695 194 else show=0;
al@695 195 if (/^Description/) show=1;
al@695 196 }' < $TMP_DIR/control > $file/description.txt
al@695 197 sed -i 's/^\.$//' $file/description.txt
al@695 198 [ -s $file/description.txt ] || rm -f $file/description.txt
al@695 199 tazpkg pack $file
al@695 200 cd $TOP_DIR
al@695 201 mv $TMP_DIR/$file.tazpkg .
al@695 202 ;;
al@695 203 *)
al@695 204 _ 'Invalid target: $target (expected i386)'
al@695 205 ;;
al@695 206 esac
al@695 207 rm -rf $TMP_DIR
al@695 208 }
al@695 209
al@695 210
al@695 211 # convert a .pkg.tar.gz/.pkg.tar.xz/.apk package to .tazpkg
al@695 212
al@695 213 convert_arch()
al@695 214 {
al@695 215 mkdir -p $TMP_DIR/fs
al@695 216 busybox tar xf $PACKAGE_FILE -C $TMP_DIR/fs
al@695 217 if [ -f $TMP_DIR/fs/.PKGINFO ]; then
al@695 218 cd $TMP_DIR
al@695 219 package="$(grep ^pkgname fs/.PKGINFO | sed 's/.*= //')"
al@695 220 version="$(grep ^pkgver fs/.PKGINFO | sed 's/.*= //')"
al@695 221 descrip="$(grep ^pkgdesc fs/.PKGINFO | sed 's/.*= //')"
al@695 222 url="$(grep ^url fs/.PKGINFO | sed 's/.*= //')"
al@695 223 maintainer="$(grep ^packager fs/.PKGINFO | sed 's/.*= //')"
al@695 224 file=$package-$version
al@695 225 mkdir $file
al@695 226 mv fs $file
al@695 227 cat > $file/receipt <<EOT
al@695 228 # SliTaz package receipt.
al@695 229 # generated by tazpkg from Archlinux package $(basename $PACKAGE_FILE)
al@695 230 PACKAGE="$package"
al@695 231 VERSION="$version"
al@695 232 CATEGORY="misc"
al@695 233 SHORT_DESC="$descrip"
al@695 234 WEB_SITE="$url"
al@695 235 MAINTAINER="$maintainer"
al@695 236 DEPENDS="$(find_depends)"
al@695 237 EOT
al@695 238 show_unresolved_lib $file/receipt
al@695 239 rm -f $file/fs/.[A-Z]*
al@695 240 tazpkg pack $file
al@695 241 mv $file.tazpkg $TOP_DIR
al@695 242 else
al@695 243 _ '$PACKAGE_FILE does not look like an Archlinux/Alpine package!'
al@695 244 fi
al@695 245 cd $TOP_DIR
al@695 246 rm -rf $TMP_DIR
al@695 247 }
al@695 248
al@695 249
al@695 250 # get package and version from PACKAGE_FILE
al@695 251
al@695 252 parse_pkgname()
al@695 253 {
al@695 254 package=$(basename ${2:-$PACKAGE_FILE} $1)
al@695 255 IFS='-'
al@695 256 set -- $package
al@695 257 unset IFS
al@695 258 package=$1
al@695 259 version=$2
al@695 260 if [ -z "$version" ]; then
al@695 261 package=${1%%[0-9\.]*}
al@695 262 version=${1#$package}
al@695 263 fi
al@695 264 file="$package-$version"
al@695 265 mkdir $file
al@695 266 }
al@695 267
al@695 268
al@695 269 finish_convert_puppy()
al@695 270 {
al@695 271 rm -f fs/*.specs
al@695 272 mv fs $file
al@695 273 cat > $file/receipt <<EOT
al@695 274 # SliTaz package receipt.
al@695 275 # generated by tazpkg from puppy package $(basename $PACKAGE_FILE)
al@695 276 PACKAGE="$package"
al@695 277 VERSION="$version"
al@695 278 CATEGORY="misc"
al@695 279 SHORT_DESC="$desc"
al@695 280 WEB_SITE="http://puppylinux.org/"
al@695 281 MAINTAINER="nobody@slitaz.org"
al@695 282 DEPENDS="$(find_depends)"
al@695 283 EOT
al@695 284 show_unresolved_lib $file/receipt
al@695 285 for i in install uninstall ; do
al@695 286 [ -f $file/fs/p$i.sh ] && cat >> $file/receipt <<EOM
al@695 287
al@695 288 post_$i()
al@695 289 {
al@695 290 chroot \$1/ sh - << EOT
al@695 291 cd /
al@695 292 $(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/p$i.sh ; rm -f $file/fs/p$i.sh)
al@695 293 EOT
al@695 294 }
al@695 295 EOM
al@695 296 done
al@695 297 sed -i 's/post_uninstall/post_remove/' $file/receipt
al@695 298 tazpkg pack $file
al@695 299 mv $file.tazpkg $TOP_DIR
al@695 300 cd $TOP_DIR
al@695 301 rm -rf $TMP_DIR
al@695 302 }
al@695 303
al@695 304
al@695 305 # convert a .sfs package to .tazpkg
al@695 306
al@695 307 convert_sfs()
al@695 308 {
al@695 309 [ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs
al@695 310 if ! unsquashfs -l $PACKAGE_FILE | grep -q squashfs-root/pet.specs$ ; then
al@695 311 _ '$PACKAGE_FILE does not look like a Puppy package!'
al@695 312 return 1
al@695 313 fi
al@695 314 mkdir -p $TMP_DIR
al@695 315 cd $TMP_DIR
al@695 316 parse_pkgname .sfs
al@695 317 unsquashfs $PACKAGE_FILE
al@695 318 mv squashfs-root fs
al@695 319 set -- $(cat fs/pet.specs)
al@695 320 desc="$10"
al@695 321 finish_convert_puppy
al@695 322 }
al@695 323
al@695 324
al@695 325 # convert a .pet package to .tazpkg
al@695 326
al@695 327 convert_pet()
al@695 328 {
al@695 329 mkdir -p $TMP_DIR
al@695 330 cd $TMP_DIR
al@695 331 parse_pkgname .pet
al@695 332 tar xzf $PACKAGE_FILE 2> /dev/null
al@695 333 . $package*/*.specs
al@695 334 desc="$PETMENUDESCR"
al@695 335 mv $package*/ fs
al@695 336 finish_convert_puppy
al@695 337 }
al@695 338
al@695 339
al@695 340 # convert a .sb package to .tazpkg
al@695 341
al@695 342 convert_sb()
al@695 343 {
al@695 344 [ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs
al@695 345 if ! unsquashfs -l $PACKAGE_FILE | grep -q squashfs-root/var/log/removed_scripts ; then
al@695 346 _ '$PACKAGE_FILE does not look like a Slax package!'
al@695 347 return 1
al@695 348 fi
al@695 349 mkdir -p $TMP_DIR
al@695 350 cd $TMP_DIR
al@695 351 unsquashfs $PACKAGE_FILE
al@695 352 mv squashfs-root fs
al@695 353 parse_pkgname '' $(cat fs/var/log/packages/* | sed '/PACKAGE NAME:/!d;s/.*: *//')
al@695 354 desc="$(cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,$!d;N;s/.*: //;q')"
al@695 355 cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,/FILE LIST/!d;s/.*://;/^$/d' > $file/description.txt
al@695 356 mv fs $file
al@695 357 cat > $file/receipt <<EOT
al@695 358 # SliTaz package receipt.
al@695 359 # generated by tazpkg from slax package $(basename $PACKAGE_FILE)
al@695 360 PACKAGE="$package"
al@695 361 VERSION="$version"
al@695 362 CATEGORY="misc"
al@695 363 SHORT_DESC="$desc"
al@695 364 WEB_SITE="http://www.slax.org/"
al@695 365 MAINTAINER="nobody@slitaz.org"
al@695 366 DEPENDS="$(find_depends)"
al@695 367 EOT
al@695 368 show_unresolved_lib $file/receipt
al@695 369 [ -f $file/fs/var/log/scripts/$package* ] && cat >> $file/receipt <<EOM
al@695 370
al@695 371 post_install()
al@695 372 {
al@695 373 chroot \$1/ sh - << EOT
al@695 374 cd /
al@695 375 $(cat $file/fs/var/log/scripts/$package* | sed -e 's/\\/\\\\/g' | sed -e 's/\$/\\$/g')
al@695 376 EOT
al@695 377 }
al@695 378 EOM
al@695 379 tazpkg pack $file
al@695 380 mv $file.tazpkg $TOP_DIR
al@695 381 cd $TOP_DIR
al@695 382 rm -rf $TMP_DIR
al@695 383 }
al@695 384
al@695 385
al@695 386 # convert a .tgz package to .tazpkg
al@695 387
al@695 388 convert_tgz()
al@695 389 {
al@695 390 parse_pkgname
al@695 391 mkdir -p $TMP_DIR/$file/fs
al@695 392 tar xzf $PACKAGE_FILE -C $TMP_DIR/$file/fs
al@695 393 cd $TMP_DIR
al@695 394 if [ -d $file/fs/install ]; then
al@695 395 descrip=$(grep ^$package $file/fs/install/slack-desc | \
al@695 396 head -1 | sed 's/.*(\(.*\)).*/\1/')
al@695 397 cat > $file/receipt <<EOT
al@695 398 # SliTaz package receipt.
al@695 399 # generated by tazpkg from slackware package $(basename $PACKAGE_FILE)
al@695 400 PACKAGE="$package"
al@695 401 VERSION="$version"
al@695 402 CATEGORY="misc"
al@695 403 SHORT_DESC="$descrip"
al@695 404 WEB_SITE="http://www.slackware.com/packages/"
al@695 405 MAINTAINER="nobody@slitaz.org"
al@695 406 DEPENDS="$(find_depends)"
al@695 407 EOT
al@695 408 show_unresolved_lib $file/receipt
al@695 409 [ -f $file/fs/install/doinst.sh ] && cat >> $file/receipt <<EOM
al@695 410
al@695 411 post_install()
al@695 412 {
al@695 413 chroot \$1/ sh - << EOT
al@695 414 cd /
al@695 415 $(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/install/doinst.sh)
al@695 416 EOT
al@695 417 }
al@695 418 EOM
al@695 419 grep ^$package $file/fs/install/slack-desc | \
al@695 420 sed "s/^$package://" > $file/description.txt
al@695 421 [ -s $file/description.txt ] || rm -f $file/description.txt
al@695 422 rm -rf $file/fs/install
al@695 423 tazpkg pack $file
al@695 424 mv $file.tazpkg $TOP_DIR
al@695 425 else
al@695 426 _ '$PACKAGE_FILE does not look like a Slackware package!'
al@695 427 fi
al@695 428 cd $TOP_DIR
al@695 429 rm -rf $TMP_DIR
al@695 430 }
al@695 431
al@695 432
al@695 433 # convert a .deb package to .tazpkg
al@695 434
al@695 435 convert_deb()
al@695 436 {
al@695 437 mkdir -p $TMP_DIR
al@695 438 dpkg-deb -e $PACKAGE_FILE $TMP_DIR
al@695 439 package=$(grep '^ *Package:' $TMP_DIR/control)
al@695 440 package=$(echo ${package##*:})
al@695 441 version=$(grep '^ *Version:' $TMP_DIR/control)
al@695 442 version=$(echo ${version##*:})
al@695 443 descrip=$(grep '^ *Description:' $TMP_DIR/control)
al@695 444 descrip=$(echo ${descrip##*:})
al@695 445 target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')"
al@695 446 case "$target" in
al@695 447 i386|all)
al@695 448 file="$package-$version"
al@695 449 mkdir -p $TMP_DIR/$file/fs/
al@695 450 dpkg-deb -x $PACKAGE_FILE $TMP_DIR/$file/fs
al@695 451 cd $TMP_DIR
al@695 452 cat > $file/receipt <<EOT
al@695 453 # SliTaz package receipt.
al@695 454 # generated by tazpkg from debian package $(basename $PACKAGE_FILE)
al@695 455 PACKAGE="$package"
al@695 456 VERSION="$version"
al@695 457 CATEGORY="misc"
al@695 458 SHORT_DESC="$descrip"
al@695 459 WEB_SITE="http://packages.debian.org/search?keywords=$package"
al@695 460 MAINTAINER="nobody@slitaz.org"
al@695 461 EOT
al@695 462 LICENSE="$(grep /usr/share/common-licenses/ \
al@695 463 $PACKAGE_FILE $TMP_DIR/$file/fs/usr/share/doc/*/copyright | \
al@695 464 sed 's|.*common-licenses/\([-\.A-Za-z0-9]*\).*|\1|;s|[-\.]$||q')"
al@695 465 [ -n "$LICENSE" ] && echo "LICENSE=\"$LICENSE\"" >> $file/receipt
al@695 466 echo "DEPENDS=\"$(find_depends)\"" >> $file/receipt
al@695 467 [ -s conffiles ] && cat >> $file/receipt <<EOT
al@695 468 CONFIG_FILES="$(cat conffiles)"
al@695 469 EOT
al@695 470 show_unresolved_lib $file/receipt
al@695 471 awk '
al@695 472 {
al@695 473 if (/^ / && show) print substr($0,2);
al@695 474 else show=0;
al@695 475 if (/^Description/) show=1;
al@695 476 }' < $TMP_DIR/control > $file/description.txt
al@695 477 sed -i 's/^\.$//' $file/description.txt
al@695 478 [ -s $file/description.txt ] || rm -f $file/description.txt
al@695 479 tazpkg pack $file
al@695 480 mv $file.tazpkg $TOP_DIR
al@695 481 ;;
al@695 482 *)
al@695 483 _ 'Invalid target: $target (expected i386)'
al@695 484 ;;
al@695 485 esac
al@695 486 cd $TOP_DIR
al@695 487 rm -rf $TMP_DIR
al@695 488 }
al@695 489
al@695 490
al@695 491 # convert a .rpm package to .tazpkg
al@695 492
al@695 493 convert_rpm()
al@695 494 {
al@695 495 mkdir -p $TMP_DIR
al@695 496 cp $PACKAGE_FILE $TMP_DIR
al@695 497 PACKAGE_FILE=$TMP_DIR/$(basename $PACKAGE_FILE)
al@695 498 rpm -qip $PACKAGE_FILE | awk -v pkg=$(basename $PACKAGE_FILE) '
al@695 499 BEGIN {
al@695 500 goturl=0;
al@695 501 printf "# SliTaz package receipt.\n";
al@695 502 printf "# generated by tazpkg from rpm package %s\n",pkg;
al@695 503 }
al@695 504 {
al@695 505 if (/^Name/) { name=$3; printf "PACKAGE=\"%s\"\n",$3; }
al@695 506 if (/^Version/) printf "VERSION=\"%s-",$3;
al@695 507 if (/^Release/) printf "%s\"\n",$3;
al@695 508 if (/^Summary/) printf "SHORT_DESC=\"%s\"\n",substr($0,15);
al@695 509 if (/^URL/) { goturl=1; printf "WEB_SITE=\"%s\"\n",$3; }
al@695 510 }
al@695 511 END {
al@695 512 if (goturl == 0)
al@695 513 printf "WEB_SITE=\"http://rpmfind.net/linux/rpm2html/search.php?query=%s\"\n",name;
al@695 514 printf "CATEGORY=\"misc\"\n";
al@695 515 printf "MAINTAINER=\"nobody@slitaz.org\"\n";
al@695 516 }
al@695 517 ' > $TMP_DIR/receipt
al@695 518 . $TMP_DIR/receipt
al@695 519 file=$PACKAGE-$VERSION
al@695 520 mkdir -p $TMP_DIR/$file/fs/
al@695 521 mv $TMP_DIR/receipt $TMP_DIR/$file
al@695 522 rpm -qip $PACKAGE_FILE | awk '
al@695 523 BEGIN { show=0 }
al@695 524 {
al@695 525 if (show) print;
al@695 526 if (/^Description/) show=1;
al@695 527 }
al@695 528 ' > $TMP_DIR/$file/description.txt
al@695 529 cd $TMP_DIR/$file/fs/
al@695 530 rpm2cpio $PACKAGE_FILE | cpio -idm --quiet
al@695 531 # rpm2cpio can't extract some new RPMs
al@695 532 if [ $? == 1 ]; then
al@695 533 if [ ! -e $INSTALLED/p7zip-full/receipt ]; then
al@695 534 boldify $(_ 'Unable to extract the RPM using standard tools (rpm2cpio).')
al@695 535 _n "Do you want to install 'p7zip-full' package"; confirm
al@695 536 if [ $? = 0 ]; then
al@695 537 tazpkg -gi p7zip-full
al@695 538 else
al@695 539 rm -rf $TMP_DIR
al@695 540 exit 1
al@695 541 fi
al@695 542 fi
al@695 543 # we may already have 7z or may have just installed it in the step above
al@695 544 if [ -e $INSTALLED/p7zip-full/receipt ]; then
al@695 545 7z x -so $PACKAGE_FILE | cpio -idm --quiet
al@695 546 fi
al@695 547 fi
al@695 548 cd ../..
al@695 549 echo "DEPENDS=\"$(find_depends)\"" >> $TMP_DIR/$file/receipt
al@695 550 show_unresolved_lib $TMP_DIR/$file/receipt
al@695 551 tazpkg pack $file
al@695 552 mv $file.tazpkg $TOP_DIR
al@695 553 cd $TOP_DIR
al@695 554 rm -rf $TMP_DIR
al@695 555 }
al@695 556
al@695 557
al@695 558
al@695 559
al@695 560 if [ "$(dd if=$PACKAGE_FILE bs=8 count=1 skip=1 2> /dev/null)" == "debian-b" ]; then
al@695 561 convert_deb
al@695 562 else
al@695 563 case "$PACKAGE_FILE" in
al@695 564 *.deb|*.udeb)
al@695 565 convert_deb;;
al@695 566 *.rpm)
al@695 567 convert_rpm;;
al@695 568 *.sb)
al@695 569 convert_sb;;
al@695 570 *.sfs)
al@695 571 convert_sfs;;
al@695 572 *.pet)
al@695 573 convert_pet;;
al@695 574 *.tgz)
al@695 575 convert_tgz;;
al@695 576 *.apk|*.pkg.tar.gz|*.pkg.tar.xz)
al@695 577 convert_arch;;
al@695 578 *.ipk|*.opk)
al@695 579 convert_ipk;;
al@695 580 *.spack)
al@695 581 convert_spack;;
al@695 582 *.tar.bz2)
al@695 583 convert_upkg;;
al@695 584 *)
al@695 585 _ 'Unsupported format' ;;
al@695 586 esac
al@695 587 fi
al@695 588
al@695 589 exit 0