tazpkg rev 637

tazpkg/convert: add .sfs support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Jul 29 11:40:17 2013 +0200 (2013-07-29)
parents 0b0d46647d1a
children 8792c17fbd8f
files po/el.po po/es.po po/fr.po po/pl.po po/pt_BR.po po/ru.po po/sv.po po/tazpkg.pot tazpkg
line diff
     1.1 --- a/po/el.po	Mon Jul 29 11:00:03 2013 +0200
     1.2 +++ b/po/el.po	Mon Jul 29 11:40:17 2013 +0200
     1.3 @@ -251,7 +251,7 @@
     1.4  msgstr "Εμφάνιση δένδρου αντίστροφων εξαρτήσεων."
     1.5  
     1.6  #: tazpkg:149
     1.7 -msgid "Convert a deb/rpm/tgz/pet/arch/ipk package to a slitaz (.tazpkg)."
     1.8 +msgid "Convert a deb/rpm/tgz/pet/sfs/arch/ipk package to a slitaz (.tazpkg)."
     1.9  msgstr ""
    1.10  "Μετατροπή ενός πακέτου deb/rpm/tgz/pet/arch/ipk σε μορφή slitaz\n"
    1.11  "                   (.tazpkg)."
     2.1 --- a/po/es.po	Mon Jul 29 11:00:03 2013 +0200
     2.2 +++ b/po/es.po	Mon Jul 29 11:40:17 2013 +0200
     2.3 @@ -233,7 +233,7 @@
     2.4  msgstr "Mostrar en reverso el árbol de dependencias."
     2.5  
     2.6  #: tazpkg:149
     2.7 -msgid "Convert a deb/rpm/tgz/pet/arch/ipk package to a slitaz (.tazpkg)."
     2.8 +msgid "Convert a deb/rpm/tgz/pet/sfs/arch/ipk package to a slitaz (.tazpkg)."
     2.9  msgstr "Convertir paquetes deb/rpm/tgz/pet/arch/ipk al de slitaz (.tazpkg)."
    2.10  
    2.11  #: tazpkg:150
     3.1 --- a/po/fr.po	Mon Jul 29 11:00:03 2013 +0200
     3.2 +++ b/po/fr.po	Mon Jul 29 11:40:17 2013 +0200
     3.3 @@ -229,7 +229,7 @@
     3.4  msgstr "Affiche l'arbre des dépendances inverses."
     3.5  
     3.6  #: tazpkg:149
     3.7 -msgid "Convert a deb/rpm/tgz/pet/arch/ipk package to a slitaz (.tazpkg)."
     3.8 +msgid "Convert a deb/rpm/tgz/pet/sfs/arch/ipk package to a slitaz (.tazpkg)."
     3.9  msgstr "Convertit un paquet deb/rpm/tgz/pet/arch/ipk en paquet SliTaz."
    3.10  
    3.11  #: tazpkg:150
     4.1 --- a/po/pl.po	Mon Jul 29 11:00:03 2013 +0200
     4.2 +++ b/po/pl.po	Mon Jul 29 11:40:17 2013 +0200
     4.3 @@ -231,7 +231,7 @@
     4.4  msgstr ""
     4.5  
     4.6  #: tazpkg:149
     4.7 -msgid "Convert a deb/rpm/tgz/pet/arch/ipk package to a slitaz (.tazpkg)."
     4.8 +msgid "Convert a deb/rpm/tgz/pet/sfs/arch/ipk package to a slitaz (.tazpkg)."
     4.9  msgstr ""
    4.10  
    4.11  #: tazpkg:150
     5.1 --- a/po/pt_BR.po	Mon Jul 29 11:00:03 2013 +0200
     5.2 +++ b/po/pt_BR.po	Mon Jul 29 11:40:17 2013 +0200
     5.3 @@ -225,7 +225,7 @@
     5.4  msgstr "Mostra árvore de dependências reversa."
     5.5  
     5.6  #: tazpkg:149
     5.7 -msgid "Convert a deb/rpm/tgz/pet/arch/ipk package to a slitaz (.tazpkg)."
     5.8 +msgid "Convert a deb/rpm/tgz/pet/sfs/arch/ipk package to a slitaz (.tazpkg)."
     5.9  msgstr "Converte um pacote deb/rpm/tgz/pet/arch/ipk para .tazpkg."
    5.10  
    5.11  #: tazpkg:150
     6.1 --- a/po/ru.po	Mon Jul 29 11:00:03 2013 +0200
     6.2 +++ b/po/ru.po	Mon Jul 29 11:40:17 2013 +0200
     6.3 @@ -230,7 +230,7 @@
     6.4  msgstr "Показать дерево обратных зависимостей"
     6.5  
     6.6  #: tazpkg:149
     6.7 -msgid "Convert a deb/rpm/tgz/pet/arch/ipk package to a slitaz (.tazpkg)."
     6.8 +msgid "Convert a deb/rpm/tgz/pet/sfs/arch/ipk package to a slitaz (.tazpkg)."
     6.9  msgstr "Конвертировать пакеты deb|rpm|tgz|pet|arch|ipk в формат tazpkg"
    6.10  
    6.11  #: tazpkg:150
     7.1 --- a/po/sv.po	Mon Jul 29 11:00:03 2013 +0200
     7.2 +++ b/po/sv.po	Mon Jul 29 11:40:17 2013 +0200
     7.3 @@ -226,7 +226,7 @@
     7.4  msgstr ""
     7.5  
     7.6  #: tazpkg:149
     7.7 -msgid "Convert a deb/rpm/tgz/pet/arch/ipk package to a slitaz (.tazpkg)."
     7.8 +msgid "Convert a deb/rpm/tgz/pet/sfs/arch/ipk package to a slitaz (.tazpkg)."
     7.9  msgstr ""
    7.10  
    7.11  #: tazpkg:150
     8.1 --- a/po/tazpkg.pot	Mon Jul 29 11:00:03 2013 +0200
     8.2 +++ b/po/tazpkg.pot	Mon Jul 29 11:40:17 2013 +0200
     8.3 @@ -225,7 +225,7 @@
     8.4  msgstr ""
     8.5  
     8.6  #: tazpkg:149
     8.7 -msgid "Convert a deb/rpm/tgz/pet/arch/ipk package to a slitaz (.tazpkg)."
     8.8 +msgid "Convert a deb/rpm/tgz/pet/sfs/arch/ipk package to a slitaz (.tazpkg)."
     8.9  msgstr ""
    8.10  
    8.11  #: tazpkg:150
     9.1 --- a/tazpkg	Mon Jul 29 11:00:03 2013 +0200
     9.2 +++ b/tazpkg	Mon Jul 29 11:40:17 2013 +0200
     9.3 @@ -146,7 +146,7 @@
     9.4    clean-cache|-cc  $(gettext 'Clean all packages downloaded in cache directory.')
     9.5    depends          $(gettext 'Display dependencies tree.')
     9.6    rdepends         $(gettext 'Display reverse dependencies tree.')
     9.7 -  convert          $(gettext 'Convert a deb/rpm/tgz/pet/arch/ipk package to a slitaz (.tazpkg).')
     9.8 +  convert          $(gettext 'Convert a deb/rpm/tgz/pet/sfs/arch/ipk package to a slitaz (.tazpkg).')
     9.9    link             $(gettext 'Link a package from another slitaz installation.')
    9.10    setup-mirror|-sm $(gettext 'Change the mirror url configuration.')
    9.11    list-undigest    $(gettext 'List undigest mirrors.')
    9.12 @@ -1215,27 +1215,25 @@
    9.13  	rm -rf $TMP_DIR
    9.14  }
    9.15  
    9.16 -# convert a .pet package to .tazpkg
    9.17 -convert_pet()
    9.18 +# get package and version from PACKAGE_FILE
    9.19 +parse_pkgname()
    9.20  {
    9.21 -	mkdir -p $TMP_DIR 
    9.22 -	cd $TMP_DIR
    9.23 -	package=$(basename $PACKAGE_FILE .pet)
    9.24 +	package=$(basename $PACKAGE_FILE $1)
    9.25  	IFS='-'
    9.26  	set -- $package
    9.27  	unset IFS
    9.28  	package=$1
    9.29  	version=$2
    9.30  	if [ -z "$version" ]; then
    9.31 -		tmp=${package%%[0-9\.]*}
    9.32 -		version=${package#$tmp}
    9.33 -		package=$tmp
    9.34 +		package=${1%%[0-9\.]*}
    9.35 +		version=${1#$package}
    9.36  	fi
    9.37 -	tar xzf $PACKAGE_FILE 2> /dev/null
    9.38 -	. $package*/*.specs
    9.39 -	rm -f $package*/*.specs
    9.40 +}
    9.41 +
    9.42 +finish_convert_puppy()
    9.43 +{
    9.44 +	rm -f fs/*.specs
    9.45  	file="$package-$version"
    9.46 -	mv $package*/ fs
    9.47  	mkdir $file
    9.48  	mv fs $file
    9.49  	cat > $file/receipt <<EOT
    9.50 @@ -1244,7 +1242,7 @@
    9.51  PACKAGE="$package"
    9.52  VERSION="$version"
    9.53  CATEGORY="misc"
    9.54 -SHORT_DESC="$PETMENUDESCR"
    9.55 +SHORT_DESC="$desc"
    9.56  WEB_SITE="http://puppylinux.org/"
    9.57  MAINTAINER="nobody@slitaz.org"
    9.58  DEPENDS="$(find_depends)"
    9.59 @@ -1269,16 +1267,41 @@
    9.60  	rm -rf $TMP_DIR
    9.61  }
    9.62  
    9.63 +# convert a .sfs package to .tazpkg
    9.64 +convert_sfs()
    9.65 +{
    9.66 +	[ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs 
    9.67 +	if ! unsquashfs -l $PACKAGE_FILE | grep -q squashfs-root/pet.specs$ ; then
    9.68 +		eval_gettext "\$PACKAGE_FILE does not look like a Puppy package!"; echo
    9.69 +		return 1
    9.70 +	fi
    9.71 +	mkdir -p $TMP_DIR 
    9.72 +	cd $TMP_DIR
    9.73 +	parse_pkgname .sfs
    9.74 +	unsquashfs $PACKAGE_FILE
    9.75 +	mv squashfs-root fs
    9.76 +	set -- $(cat fs/pet.specs)
    9.77 +	desc="$10"
    9.78 +	finish_convert_puppy
    9.79 +}
    9.80 +
    9.81 +# convert a .pet package to .tazpkg
    9.82 +convert_pet()
    9.83 +{
    9.84 +	mkdir -p $TMP_DIR 
    9.85 +	cd $TMP_DIR
    9.86 +	parse_pkgname .pet
    9.87 +	tar xzf $PACKAGE_FILE 2> /dev/null
    9.88 +	. $package*/*.specs
    9.89 +	desc="$PETMENUDESCR"
    9.90 +	mv $package*/ fs
    9.91 +	finish_convert_puppy
    9.92 +}
    9.93 +
    9.94  # convert a .tgz package to .tazpkg
    9.95  convert_tgz()
    9.96  {
    9.97 -	package=$(basename $PACKAGE_FILE)
    9.98 -	IFS='-'
    9.99 -	set -- $package
   9.100 -	unset IFS
   9.101 -	package=$1
   9.102 -	version=$2
   9.103 -	file="$package-$version"
   9.104 +	parse_pkgname
   9.105  	mkdir -p $TMP_DIR/$file/fs
   9.106  	tar xzf $PACKAGE_FILE -C $TMP_DIR/$file/fs
   9.107  	cd $TMP_DIR
   9.108 @@ -2828,6 +2851,8 @@
   9.109  			convert_deb;;
   9.110  		*.rpm)
   9.111  			convert_rpm;;
   9.112 +		*.sfs)
   9.113 +			convert_sfs;;
   9.114  		*.pet)
   9.115  			convert_pet;;
   9.116  		*.tgz)