tazpkg rev 275

Add tazpkg convert tgz (slackware packages)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Jul 17 19:02:20 2009 +0200 (2009-07-17)
parents 6f2b0bcdb41f
children 436caeb56107
files tazpkg
line diff
     1.1 --- a/tazpkg	Sun Jun 21 11:39:44 2009 +0200
     1.2 +++ b/tazpkg	Fri Jul 17 19:02:20 2009 +0200
     1.3 @@ -120,7 +120,7 @@
     1.4    clean-cache      Clean all packages downloaded in cache directory.
     1.5    depends          Display dependencies tree.
     1.6    rdepends         Display reverse dependencies tree.
     1.7 -  convert          Convert a debian or rpm package to a slitaz package (.tazpkg).
     1.8 +  convert          Convert a deb/rpm/tgz package to a slitaz package (.tazpkg).
     1.9    link             Link a package from another slitaz installation.
    1.10    setup-mirror     Change the mirror url configuration.
    1.11    list-undigest    List undigest mirrors.
    1.12 @@ -977,6 +977,55 @@
    1.13  	fi
    1.14  }
    1.15  
    1.16 +# convert a .tgz package to .tazpkg
    1.17 +convert_tgz()
    1.18 +{
    1.19 +	IFS='-'
    1.20 +	set -- $(basename $PACKAGE_FILE)
    1.21 +	unset IFS
    1.22 +	package=$1
    1.23 +	version=$2
    1.24 +	file="$package-$version"
    1.25 +	mkdir -p $TMP_DIR/$file/fs
    1.26 +	tar xzf $PACKAGE_FILE -C $TMP_DIR/$file/fs
    1.27 +	cd $TMP_DIR
    1.28 +	if [ -d $file/fs/install ]; then
    1.29 +		descrip=$(grep ^$package $file/fs/install/slack-desc | \
    1.30 +			  head -1 | sed 's/.*(\(.*\)).*/\1/')
    1.31 +		cat > $file/receipt <<EOT
    1.32 +# SliTaz package receipt.
    1.33 +# generated by tazpkg from slackware package $(basename $PACKAGE_FILE)
    1.34 +PACKAGE="$package"
    1.35 +VERSION="$version"
    1.36 +CATEGORY="misc"
    1.37 +SHORT_DESC="$descrip"
    1.38 +WEB_SITE="http://www.slackware.com/packages/"
    1.39 +MAINTAINER="nobody@slitaz.org" 
    1.40 +DEPENDS="$(find_depends)"
    1.41 +EOT
    1.42 +		show_unresolved_lib $file/receipt
    1.43 +		[ -f $file/fs/install/doinst.sh ] && cat >> $file/receipt <<EOM
    1.44 +
    1.45 +post_install()
    1.46 +{
    1.47 +chroot \$1/ sh - << EOT
    1.48 +cd /
    1.49 +$(cat $file/fs/install/doinst.sh)
    1.50 +EOT
    1.51 +}
    1.52 +EOM
    1.53 +		grep ^$package $file/fs/install/slack-desc | \
    1.54 +			sed "s/^$package://" > $file/description.txt
    1.55 +		rm -rf $file/fs/install
    1.56 +		tazpkg pack $file
    1.57 +		mv $file.tazpkg $TOP_DIR
    1.58 +	else
    1.59 +		echo "$PACKAGE_FILE does not look like a Slackware package !"
    1.60 +	fi
    1.61 +	cd $TOP_DIR
    1.62 +	rm -rf $TMP_DIR
    1.63 +}
    1.64 +
    1.65  # convert a .deb package to .tazpkg
    1.66  convert_deb()
    1.67  {
    1.68 @@ -2374,6 +2423,8 @@
    1.69  			convert_deb;;
    1.70  		*.rpm)
    1.71  			convert_rpm;;
    1.72 +		*.tgz)
    1.73 +			convert_tgz;;
    1.74  		*)
    1.75  			echo "Unsupported format";;
    1.76  		esac