tazpkg diff modules/convert @ rev 845

install: rebuild fs/ tree respecting destination symlinks before installing files and folders to filesystem
author Aleksej Bobylev <al.bobylev@gmail.com>
date Tue Oct 06 15:46:41 2015 +0300 (2015-10-06)
parents 2f3580bd8c0c
children 8a73a58ed3cb
line diff
     1.1 --- a/modules/convert	Tue Aug 11 01:09:15 2015 +0300
     1.2 +++ b/modules/convert	Tue Oct 06 15:46:41 2015 +0300
     1.3 @@ -40,19 +40,19 @@
     1.4  # convert a .tar.bz2 package to .tazpkg
     1.5  
     1.6  convert_upkg() {
     1.7 -	mkdir -p $TMP_DIR/fs
     1.8 -	tar -xjf "$PACKAGE_FILE" -C $TMP_DIR/fs
     1.9 +	mkdir -p "$TMP_DIR/fs"
    1.10 +	tar -xjf "$PACKAGE_FILE" -C "$TMP_DIR/fs"
    1.11  	if [ -d "$TMP_DIR/fs/var/lib/upkg/packages" ]; then
    1.12 -		cd $TMP_DIR
    1.13 -		package="$(sed '/^Package:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)"
    1.14 -		version="$(sed '/^Version:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)"
    1.15 +		cd "$TMP_DIR"
    1.16 +		package=$(sed '/^Package:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)
    1.17 +		version=$(sed '/^Version:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)
    1.18  		url='http://www.paldo.org/'
    1.19  		file="$package-$version"
    1.20 -		mkdir $file
    1.21 -		mv fs $file
    1.22 +		mkdir "$file"
    1.23 +		mv fs "$file"
    1.24  		maintainer='nobody@slitaz.org'
    1.25  		descrip="$package package from paldo."
    1.26 -		cat > $file/receipt <<EOT
    1.27 +		cat > "$file/receipt" <<EOT
    1.28  # SliTaz package receipt.
    1.29  # generated by tazpkg from package $(basename "$PACKAGE_FILE")
    1.30  PACKAGE="$package"
    1.31 @@ -64,12 +64,12 @@
    1.32  DEPENDS="$(find_depends)"
    1.33  EOT
    1.34  		[ -s "$file/var/lib/upkg/files/*.config.bz2" ] &&
    1.35 -			cat >> $file/receipt <<EOT
    1.36 +			cat >> "$file/receipt" <<EOT
    1.37  CONFIG_FILES="$(bzcat $file/var/lib/upkg/files/*.config.bz2)"
    1.38  EOT
    1.39 -		while read ext func ; do
    1.40 +		while read ext func; do
    1.41  			[ -s "$file/fs/var/lib/upkg/scripts/*.$ext" ] || continue
    1.42 -			cat >> $file/receipt <<EOT
    1.43 +			cat >> "$file/receipt" <<EOT
    1.44  
    1.45  $func()
    1.46  {
    1.47 @@ -80,31 +80,31 @@
    1.48  prerm	pre_remove
    1.49  EOT
    1.50  
    1.51 -		tazpkg pack $file
    1.52 -		mv $TMP_DIR/$file.tazpkg $TOP_DIR
    1.53 +		tazpkg pack "$file"
    1.54 +		mv "$TMP_DIR/$file.tazpkg" "$TOP_DIR"
    1.55  	else
    1.56  		_ 'File "%s" does not look like %s package!' "$PACKAGE_FILE" 'upkg'
    1.57  	fi
    1.58 -	cd $TOP_DIR
    1.59 -	rm -rf $TMP_DIR
    1.60 +	cd "$TOP_DIR"
    1.61 +	rm -rf "$TMP_DIR"
    1.62  }
    1.63  
    1.64  
    1.65  # convert a .spack package to .tazpkg
    1.66  
    1.67  convert_spack() {
    1.68 -	mkdir -p $TMP_DIR
    1.69 -	( cd $TMP_DIR ; cpio -i ) < "$PACKAGE_FILE"
    1.70 -	cd $TMP_DIR
    1.71 -	package="$(sed '$!d;s/:.*//' about.txt)"
    1.72 -	version="$(basename "$PACKAGE_FILE" | sed "s/$package-\([^-]*\).*/\1/")"
    1.73 -	descrip="$(sed '$!d;s/.*: //' about.txt)"
    1.74 +	mkdir -p "$TMP_DIR"
    1.75 +	( cd "$TMP_DIR"; cpio -i ) < "$PACKAGE_FILE"
    1.76 +	cd "$TMP_DIR"
    1.77 +	package=$(sed '$!d;s/:.*//' about.txt)
    1.78 +	version=$(basename "$PACKAGE_FILE" | sed "s/$package-\([^-]*\).*/\1/")
    1.79 +	descrip=$(sed '$!d;s/.*: //' about.txt)
    1.80  	url='http://0linux.org/'
    1.81  	maintainer='nobody@slitaz.org'
    1.82  	file="$package-$version"
    1.83 -	mkdir -p $file/fs
    1.84 -	xzcat files.xz | ( cd $file/fs ; cpio -idmu )
    1.85 -	cat > $file/receipt <<EOT
    1.86 +	mkdir -p "$file/fs"
    1.87 +	xzcat files.xz | ( cd "$file/fs"; cpio -idmu )
    1.88 +	cat > "$file/receipt" <<EOT
    1.89  # SliTaz package receipt.
    1.90  # generated by tazpkg from package $(basename "$PACKAGE_FILE")
    1.91  PACKAGE="$package"
    1.92 @@ -115,7 +115,7 @@
    1.93  MAINTAINER="$maintainer"
    1.94  DEPENDS="$(find_depends)"
    1.95  EOT
    1.96 -	[ -s 'pre-install.sh' ] && cat >> $file/receipt <<EOT
    1.97 +	[ -s 'pre-install.sh' ] && cat >> "$file/receipt" <<EOT
    1.98  
    1.99  pre_install()
   1.100  {
   1.101 @@ -123,7 +123,7 @@
   1.102  $(sed 1d pre-install.sh)
   1.103  }
   1.104  EOT
   1.105 -	[ -s 'post-install.sh' ] && cat >> $file/receipt <<EOT
   1.106 +	[ -s 'post-install.sh' ] && cat >> "$file/receipt" <<EOT
   1.107  
   1.108  post_install()
   1.109  {
   1.110 @@ -131,32 +131,32 @@
   1.111  $(sed '1,/^}/d' post-install.sh)
   1.112  }
   1.113  EOT
   1.114 -	tazpkg pack $file
   1.115 -	cd $TOP_DIR
   1.116 -	mv $TMP_DIR/$file.tazpkg .
   1.117 -	rm -rf $TMP_DIR
   1.118 +	tazpkg pack "$file"
   1.119 +	cd "$TOP_DIR"
   1.120 +	mv "$TMP_DIR/$file.tazpkg" .
   1.121 +	rm -rf "$TMP_DIR"
   1.122  }
   1.123  
   1.124  
   1.125  # convert a .ipk package to .tazpkg
   1.126  
   1.127  convert_ipk() {
   1.128 -	mkdir -p $TMP_DIR
   1.129 -	tar -xOzf "$PACKAGE_FILE" ./control.tar.gz | tar -xzf - -C $TMP_DIR
   1.130 -	package=$(sed '/^Package/!d;s/.*: //' $TMP_DIR/control)
   1.131 -	version=$(sed '/^Version/!d;s/.*: //' $TMP_DIR/control)
   1.132 -	maintainer="$(sed '/^Maintainer/!d;s/.*: //' $TMP_DIR/control)"
   1.133 -	target="$(sed '/^Architecture/!d;s/.*: //' $TMP_DIR/control)"
   1.134 -	descrip=$(sed '/^Description/!d;s/.*: //' $TMP_DIR/control)
   1.135 -	homepage=$(sed '/^Homepage/!d;s/.*: //' $TMP_DIR/control)
   1.136 +	mkdir -p "$TMP_DIR"
   1.137 +	tar -xOzf "$PACKAGE_FILE" ./control.tar.gz | tar -xzf - -C "$TMP_DIR"
   1.138 +	package=$(   sed '/^Package/!d;s/.*: //'      "$TMP_DIR/control")
   1.139 +	version=$(   sed '/^Version/!d;s/.*: //'      "$TMP_DIR/control")
   1.140 +	maintainer=$(sed '/^Maintainer/!d;s/.*: //'   "$TMP_DIR/control")
   1.141 +	target=$(    sed '/^Architecture/!d;s/.*: //' "$TMP_DIR/control")
   1.142 +	descrip=$(   sed '/^Description/!d;s/.*: //'  "$TMP_DIR/control")
   1.143 +	homepage=$(  sed '/^Homepage/!d;s/.*: //'     "$TMP_DIR/control")
   1.144  	url='http://openwrt.org/'
   1.145  	case "$target" in
   1.146  	i386|all)
   1.147  		file="$package-$version"
   1.148 -		mkdir -p $TMP_DIR/$file/fs
   1.149 -		tar -xOzf "$PACKAGE_FILE" ./data.tar.gz | tar -xzf - -C $TMP_DIR/$file/fs
   1.150 -		cd $TMP_DIR
   1.151 -		cat > $file/receipt <<EOT
   1.152 +		mkdir -p "$TMP_DIR/$file/fs"
   1.153 +		tar -xOzf "$PACKAGE_FILE" ./data.tar.gz | tar -xzf - -C "$TMP_DIR/$file/fs"
   1.154 +		cd "$TMP_DIR"
   1.155 +		cat > "$file/receipt" <<EOT
   1.156  # SliTaz package receipt.
   1.157  # generated by tazpkg from package $(basename "$PACKAGE_FILE")
   1.158  PACKAGE="$package"
   1.159 @@ -167,17 +167,17 @@
   1.160  MAINTAINER="$maintainer"
   1.161  DEPENDS="$(find_depends)"
   1.162  EOT
   1.163 -		show_unresolved_lib $file/receipt
   1.164 -		[ -s 'conffiles' ] && cat >> $file/receipt <<EOT
   1.165 -CONFIG_FILES="$(cat conffiles)"
   1.166 +		show_unresolved_lib "$file/receipt"
   1.167 +		[ -s 'conffiles' ] && cat >> "$file/receipt" <<EOT
   1.168 +CONFIG_FILES=$(cat conffiles)
   1.169  EOT
   1.170 -		show_unresolved_lib $file/receipt
   1.171 +		show_unresolved_lib "$file/receipt"
   1.172  		while read script func; do
   1.173 -			[ -s "$script" ] && cat >> $file/receipt <<EOT
   1.174 +			[ -s "$script" ] && cat >> "$file/receipt" <<EOT
   1.175  
   1.176  $func()
   1.177  {
   1.178 -$(cat $script)
   1.179 +$(cat "$script")
   1.180  }
   1.181  EOT
   1.182  		done <<EOT
   1.183 @@ -188,37 +188,40 @@
   1.184  EOT
   1.185  		awk '
   1.186  {
   1.187 -   if (/^ / && show) print substr($0,2);
   1.188 -   else show=0;
   1.189 -   if (/^Description/) show=1;
   1.190 -}' < $TMP_DIR/control > $file/description.txt
   1.191 -		sed -i 's/^\.$//' $file/description.txt
   1.192 -		[ -s $file/description.txt ] || rm -f $file/description.txt
   1.193 -		tazpkg pack $file
   1.194 -		cd $TOP_DIR
   1.195 -		mv $TMP_DIR/$file.tazpkg .
   1.196 +	if (/^ / && show)
   1.197 +		print substr($0,2);
   1.198 +	else
   1.199 +		show=0;
   1.200 +	if (/^Description/)
   1.201 +		show=1;
   1.202 +}' < "$TMP_DIR/control" > "$file/description.txt"
   1.203 +		sed -i 's/^\.$//' "$file/description.txt"
   1.204 +		[ -s "$file/description.txt" ] || rm -f "$file/description.txt"
   1.205 +		tazpkg pack "$file"
   1.206 +		cd "$TOP_DIR"
   1.207 +		mv "$TMP_DIR/$file.tazpkg" .
   1.208  		;;
   1.209  	*)
   1.210  		_ 'Invalid target: %s (expected i386)' "$target"
   1.211  		;;
   1.212  	esac
   1.213 -	rm -rf $TMP_DIR
   1.214 +	rm -rf "$TMP_DIR"
   1.215  }
   1.216  
   1.217  
   1.218  # convert a .cards.tar.xz package to .tazpkg
   1.219  
   1.220  convert_nutyx() {
   1.221 -	mkdir -p $TMP_DIR/fs
   1.222 -	busybox tar -xf "$PACKAGE_FILE" -C $TMP_DIR/fs
   1.223 +	mkdir -p "$TMP_DIR/fs"
   1.224 +	busybox tar -xf "$PACKAGE_FILE" -C "$TMP_DIR/fs"
   1.225  	if [ -f "$TMP_DIR/fs/.META" ]; then
   1.226 -		package="$(sed '/^N/!d;s/^.//' fs/.META)"
   1.227 -		version="$(sed '/^V/!d;s/^.//' fs/.META)"
   1.228 -		descrip="$(sed '/^D/!d;s/^.//' fs/.META)"
   1.229 +		package=$(sed '/^N/!d;s/^.//' fs/.META)
   1.230 +		version=$(sed '/^V/!d;s/^.//' fs/.META)
   1.231 +		descrip=$(sed '/^D/!d;s/^.//' fs/.META)
   1.232  		file="$package-$version"
   1.233 -		mkdir $file
   1.234 -		mv fs $file
   1.235 -		cat > $file/receipt <<EOT
   1.236 +		mkdir "$file"
   1.237 +		mv fs "$file"
   1.238 +		cat > "$file/receipt" <<EOT
   1.239  # SliTaz package receipt.
   1.240  # generated by tazpkg from NuTyX package $(basename "$PACKAGE_FILE")
   1.241  PACKAGE="$package"
   1.242 @@ -229,34 +232,34 @@
   1.243  MAINTAINER="nobody@slitaz.org"
   1.244  DEPENDS="$(find_depends)"
   1.245  EOT
   1.246 -		show_unresolved_lib $file/receipt
   1.247 -		rm -f $file/fs/.[A-Z]*
   1.248 -		tazpkg pack $file
   1.249 -		mv $file.tazpkg $TOP_DIR
   1.250 +		show_unresolved_lib "$file/receipt"
   1.251 +		rm -f "$file/fs/".[A-Z]*
   1.252 +		tazpkg pack "$file"
   1.253 +		mv "$file.tazpkg" "$TOP_DIR"
   1.254  	else
   1.255  		_ 'File "%s" does not look like %s package!' "$PACKAGE_FILE" 'NuTyX'
   1.256  	fi
   1.257 -	cd $TOP_DIR
   1.258 -	rm -rf $TMP_DIR
   1.259 +	cd "$TOP_DIR"
   1.260 +	rm -rf "$TMP_DIR"
   1.261  }
   1.262  
   1.263  
   1.264  # convert a .pkg.tar.gz/.pkg.tar.xz/.apk package to .tazpkg
   1.265  
   1.266  convert_arch() {
   1.267 -	mkdir -p $TMP_DIR/fs
   1.268 -	busybox tar -xf "$PACKAGE_FILE" -C $TMP_DIR/fs
   1.269 +	mkdir -p "$TMP_DIR/fs"
   1.270 +	busybox tar -xf "$PACKAGE_FILE" -C "$TMP_DIR/fs"
   1.271  	if [ -f "$TMP_DIR/fs/.PKGINFO" ]; then
   1.272 -		cd $TMP_DIR
   1.273 -		package="$(sed '/^pkgname/!d;s/.*= //' fs/.PKGINFO)"
   1.274 -		version="$(sed '/^pkgver/!d;s/.*= //'  fs/.PKGINFO)"
   1.275 -		descrip="$(sed '/^pkgdesc/!d;s/.*= //' fs/.PKGINFO)"
   1.276 -		url="$(sed '/^url/!d;s/.*= //' fs/.PKGINFO)"
   1.277 -		maintainer="$(sed '/^packager/!d;s/.*= //' fs/.PKGINFO)"
   1.278 +		cd "$TMP_DIR"
   1.279 +		package=$(   sed '/^pkgname/!d;s/.*= //'  fs/.PKGINFO)
   1.280 +		version=$(   sed '/^pkgver/!d;s/.*= //'   fs/.PKGINFO)
   1.281 +		descrip=$(   sed '/^pkgdesc/!d;s/.*= //'  fs/.PKGINFO)
   1.282 +		url=$(       sed '/^url/!d;s/.*= //'      fs/.PKGINFO)
   1.283 +		maintainer=$(sed '/^packager/!d;s/.*= //' fs/.PKGINFO)
   1.284  		file="$package-$version"
   1.285 -		mkdir $file
   1.286 -		mv fs $file
   1.287 -		cat > $file/receipt <<EOT
   1.288 +		mkdir "$file"
   1.289 +		mv fs "$file"
   1.290 +		cat > "$file/receipt" <<EOT
   1.291  # SliTaz package receipt.
   1.292  # generated by tazpkg from Archlinux package $(basename "$PACKAGE_FILE")
   1.293  PACKAGE="$package"
   1.294 @@ -267,15 +270,15 @@
   1.295  MAINTAINER="$maintainer"
   1.296  DEPENDS="$(find_depends)"
   1.297  EOT
   1.298 -		show_unresolved_lib $file/receipt
   1.299 -		rm -f $file/fs/.[A-Z]*
   1.300 -		tazpkg pack $file
   1.301 -		mv $file.tazpkg $TOP_DIR
   1.302 +		show_unresolved_lib "$file/receipt"
   1.303 +		rm -f "$file/fs/".[A-Z]*
   1.304 +		tazpkg pack "$file"
   1.305 +		mv "$file.tazpkg" "$TOP_DIR"
   1.306  	else
   1.307  		_ 'File "%s" does not look like %s package!' "$PACKAGE_FILE" 'Archlinux/Alpine'
   1.308  	fi
   1.309 -	cd $TOP_DIR
   1.310 -	rm -rf $TMP_DIR
   1.311 +	cd "$TOP_DIR"
   1.312 +	rm -rf "$TMP_DIR"
   1.313  }
   1.314  
   1.315  
   1.316 @@ -284,7 +287,7 @@
   1.317  parse_pkgname() {
   1.318  	package=$(basename "${2:-$PACKAGE_FILE}" "$1")
   1.319  	IFS='-'
   1.320 -	set -- $package
   1.321 +	set -- "$package"
   1.322  	unset IFS
   1.323  	package="$1"
   1.324  	version="$2"
   1.325 @@ -293,14 +296,14 @@
   1.326  		version=${1#$package}
   1.327  	fi
   1.328  	file="$package-$version"
   1.329 -	mkdir $file
   1.330 +	mkdir "$file"
   1.331  }
   1.332  
   1.333  
   1.334  finish_convert_puppy() {
   1.335  	rm -f fs/*.specs
   1.336 -	mv fs $file
   1.337 -	cat > $file/receipt <<EOT
   1.338 +	mv fs "$file"
   1.339 +	cat > "$file/receipt" <<EOT
   1.340  # SliTaz package receipt.
   1.341  # generated by tazpkg from puppy package $(basename "$PACKAGE_FILE")
   1.342  PACKAGE="$package"
   1.343 @@ -311,38 +314,37 @@
   1.344  MAINTAINER="nobody@slitaz.org"
   1.345  DEPENDS="$(find_depends)"
   1.346  EOT
   1.347 -	show_unresolved_lib $file/receipt
   1.348 -	for i in install uninstall ; do
   1.349 -		[ -f "$file/fs/p$i.sh" ] && cat >> $file/receipt <<EOM
   1.350 +	show_unresolved_lib "$file/receipt"
   1.351 +	for i in install uninstall; do
   1.352 +		[ -f "$file/fs/p$i.sh" ] && cat >> "$file/receipt" <<EOM
   1.353  
   1.354  post_$i()
   1.355  {
   1.356  chroot \$1/ sh - << EOT
   1.357  cd /
   1.358 -$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/p$i.sh ; rm -f $file/fs/p$i.sh)
   1.359 +$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < "$file/fs/p$i.sh" ; rm -f "$file/fs/p$i.sh")
   1.360  EOT
   1.361  }
   1.362  EOM
   1.363  	done
   1.364 -	sed -i 's/post_uninstall/post_remove/' $file/receipt
   1.365 -	tazpkg pack $file
   1.366 -	mv $file.tazpkg $TOP_DIR
   1.367 -	cd $TOP_DIR
   1.368 -	rm -rf $TMP_DIR
   1.369 +	sed -i 's/post_uninstall/post_remove/' "$file/receipt"
   1.370 +	tazpkg pack "$file"
   1.371 +	mv "$file.tazpkg" "$TOP_DIR"
   1.372 +	cd "$TOP_DIR"
   1.373 +	rm -rf "$TMP_DIR"
   1.374  }
   1.375  
   1.376  
   1.377  # convert a .sfs package to .tazpkg
   1.378  
   1.379 -convert_sfs()
   1.380 -{
   1.381 +convert_sfs() {
   1.382  	[ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs
   1.383  	if ! unsquashfs -l "$PACKAGE_FILE" | grep -q squashfs-root/pet.specs$ ; then
   1.384  		_ 'File "%s" does not look like %s package!' "$PACKAGE_FILE" 'Puppy'
   1.385  		return 1
   1.386  	fi
   1.387 -	mkdir -p $TMP_DIR 
   1.388 -	cd $TMP_DIR
   1.389 +	mkdir -p "$TMP_DIR"
   1.390 +	cd "$TMP_DIR"
   1.391  	parse_pkgname .sfs
   1.392  	unsquashfs "$PACKAGE_FILE"
   1.393  	mv squashfs-root fs
   1.394 @@ -355,13 +357,13 @@
   1.395  # convert a .pet package to .tazpkg
   1.396  
   1.397  convert_pet() {
   1.398 -	mkdir -p $TMP_DIR
   1.399 -	cd $TMP_DIR
   1.400 +	mkdir -p "$TMP_DIR"
   1.401 +	cd "$TMP_DIR"
   1.402  	parse_pkgname .pet
   1.403  	tar -xzf "$PACKAGE_FILE" 2>/dev/null
   1.404 -	. $package*/*.specs
   1.405 +	. "$package"*/*.specs
   1.406  	desc="$PETMENUDESCR"
   1.407 -	mv $package*/ fs
   1.408 +	mv "$package"*/ fs
   1.409  	finish_convert_puppy
   1.410  }
   1.411  
   1.412 @@ -374,15 +376,15 @@
   1.413  		_ 'File "%s" does not look like %s package!' "$PACKAGE_FILE" 'Slax'
   1.414  		return 1
   1.415  	fi
   1.416 -	mkdir -p $TMP_DIR
   1.417 -	cd $TMP_DIR
   1.418 +	mkdir -p "$TMP_DIR"
   1.419 +	cd "$TMP_DIR"
   1.420  	unsquashfs "$PACKAGE_FILE"
   1.421  	mv squashfs-root fs
   1.422  	parse_pkgname '' $(cat fs/var/log/packages/* | sed '/PACKAGE NAME:/!d;s/.*: *//')
   1.423  	desc="$(cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,$!d;N;s/.*: //;q')"
   1.424 -	cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,/FILE LIST/!d;s/.*://;/^$/d' > $file/description.txt
   1.425 -	mv fs $file
   1.426 -	cat > $file/receipt <<EOT
   1.427 +	cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,/FILE LIST/!d;s/.*://;/^$/d' > "$file/description.txt"
   1.428 +	mv fs "$file"
   1.429 +	cat > "$file/receipt" <<EOT
   1.430  # SliTaz package receipt.
   1.431  # generated by tazpkg from slax package $(basename "$PACKAGE_FILE")
   1.432  PACKAGE="$package"
   1.433 @@ -393,21 +395,21 @@
   1.434  MAINTAINER="nobody@slitaz.org"
   1.435  DEPENDS="$(find_depends)"
   1.436  EOT
   1.437 -	show_unresolved_lib $file/receipt
   1.438 -	[ -f "$file/fs/var/log/scripts/$package*" ] && cat >> $file/receipt <<EOM
   1.439 +	show_unresolved_lib "$file/receipt"
   1.440 +	[ -f "$file/fs/var/log/scripts/$package"* ] && cat >> "$file/receipt" <<EOM
   1.441  
   1.442  post_install()
   1.443  {
   1.444  chroot \$1/ sh - << EOT
   1.445  cd /
   1.446 -$(cat $file/fs/var/log/scripts/$package* | sed -e 's/\\/\\\\/g' | sed -e 's/\$/\\$/g')
   1.447 +$(cat "$file/fs/var/log/scripts/$package"* | sed -e 's/\\/\\\\/g' | sed -e 's/\$/\\$/g')
   1.448  EOT
   1.449  }
   1.450  EOM
   1.451 -	tazpkg pack $file
   1.452 -	mv $file.tazpkg $TOP_DIR
   1.453 -	cd $TOP_DIR
   1.454 -	rm -rf $TMP_DIR
   1.455 +	tazpkg pack "$file"
   1.456 +	mv "$file.tazpkg" "$TOP_DIR"
   1.457 +	cd "$TOP_DIR"
   1.458 +	rm -rf "$TMP_DIR"
   1.459  }
   1.460  
   1.461  
   1.462 @@ -415,16 +417,16 @@
   1.463  
   1.464  convert_tgz() {
   1.465  	parse_pkgname
   1.466 -	mkdir -p $TMP_DIR/$file/fs
   1.467 +	mkdir -p "$TMP_DIR/$file/fs"
   1.468  	case "$PACKAGE_FILE" in
   1.469 -	*.txz) tar -xJf "$PACKAGE_FILE" -C $TMP_DIR/$file/fs ;;
   1.470 -	*.tgz) tar -xzf "$PACKAGE_FILE" -C $TMP_DIR/$file/fs ;;
   1.471 +	*.txz) tar -xJf "$PACKAGE_FILE" -C "$TMP_DIR/$file/fs" ;;
   1.472 +	*.tgz) tar -xzf "$PACKAGE_FILE" -C "$TMP_DIR/$file/fs" ;;
   1.473  	esac
   1.474 -	cd $TMP_DIR
   1.475 +	cd "$TMP_DIR"
   1.476  	if [ -d "$file/fs/install" ]; then
   1.477  		descrip=$(sed "/^$package/!d;s/.*(\\(.*\\)).*/\\1/;q" \
   1.478 -			  $file/fs/install/slack-desc)
   1.479 -		cat > $file/receipt <<EOT
   1.480 +			  "$file/fs/install/slack-desc")
   1.481 +		cat > "$file/receipt" <<EOT
   1.482  # SliTaz package receipt.
   1.483  # generated by tazpkg from slackware package $(basename "$PACKAGE_FILE")
   1.484  PACKAGE="$package"
   1.485 @@ -435,48 +437,48 @@
   1.486  MAINTAINER="nobody@slitaz.org"
   1.487  DEPENDS="$(find_depends)"
   1.488  EOT
   1.489 -		show_unresolved_lib $file/receipt
   1.490 -		[ -f "$file/fs/install/doinst.sh" ] && cat >> $file/receipt <<EOM
   1.491 +		show_unresolved_lib "$file/receipt"
   1.492 +		[ -f "$file/fs/install/doinst.sh" ] && cat >> "$file/receipt" <<EOM
   1.493  
   1.494  post_install()
   1.495  {
   1.496  chroot \$1/ sh - << EOT
   1.497  cd /
   1.498 -$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/install/doinst.sh)
   1.499 +$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < "$file/fs/install/doinst.sh")
   1.500  EOT
   1.501  }
   1.502  EOM
   1.503  		sed "/^$package/:d;s/^$package://" \
   1.504 -			$file/fs/install/slack-desc > $file/description.txt
   1.505 -		[ -s "$file/description.txt" ] || rm -f $file/description.txt
   1.506 -		rm -rf $file/fs/install
   1.507 -		tazpkg pack $file
   1.508 -		mv $file.tazpkg $TOP_DIR
   1.509 +			"$file/fs/install/slack-desc" > "$file/description.txt"
   1.510 +		[ -s "$file/description.txt" ] || rm -f "$file/description.txt"
   1.511 +		rm -rf "$file/fs/install"
   1.512 +		tazpkg pack "$file"
   1.513 +		mv "$file.tazpkg" "$TOP_DIR"
   1.514  	else
   1.515  		_ 'File "%s" does not look like %s package!' "$PACKAGE_FILE" 'Slackware'
   1.516  	fi
   1.517 -	cd $TOP_DIR
   1.518 -	rm -rf $TMP_DIR
   1.519 +	cd "$TOP_DIR"
   1.520 +	rm -rf "$TMP_DIR"
   1.521  }
   1.522  
   1.523  
   1.524  # convert a .deb package to .tazpkg
   1.525  
   1.526  convert_deb() {
   1.527 -	mkdir -p $TMP_DIR
   1.528 -	dpkg-deb -e "$PACKAGE_FILE" $TMP_DIR
   1.529 -	package=$(sed '/^ *Package:/!d;s/.*: //' $TMP_DIR/control)
   1.530 -	version=$(sed '/^ *Version:/!d;s/.*: //' $TMP_DIR/control)
   1.531 -	descrip=$(sed '/^ *Description:/!d;s/.*: //' $TMP_DIR/control)
   1.532 -	homepage=$(sed '/^ *Homepage:/!d;s/.*: //' $TMP_DIR/control)
   1.533 -	target="$(sed '/^ *Architecture:/!d;s/.*: //' $TMP_DIR/control)"
   1.534 +	mkdir -p "$TMP_DIR"
   1.535 +	dpkg-deb -e "$PACKAGE_FILE" "$TMP_DIR"
   1.536 +	package=$( sed '/^ *Package:/!d;s/.*: //'      "$TMP_DIR/control")
   1.537 +	version=$( sed '/^ *Version:/!d;s/.*: //'      "$TMP_DIR/control")
   1.538 +	descrip=$( sed '/^ *Description:/!d;s/.*: //'  "$TMP_DIR/control")
   1.539 +	homepage=$(sed '/^ *Homepage:/!d;s/.*: //'     "$TMP_DIR/control")
   1.540 +	target=$(  sed '/^ *Architecture:/!d;s/.*: //' "$TMP_DIR/control")
   1.541  	case "$target" in
   1.542  	i386|all)
   1.543  		file="$package-$version"
   1.544 -		mkdir -p $TMP_DIR/$file/fs/
   1.545 -		dpkg-deb -x "$PACKAGE_FILE" $TMP_DIR/$file/fs
   1.546 -		cd $TMP_DIR
   1.547 -		cat > $file/receipt <<EOT
   1.548 +		mkdir -p "$TMP_DIR/$file/fs/"
   1.549 +		dpkg-deb -x "$PACKAGE_FILE" "$TMP_DIR/$file/fs"
   1.550 +		cd "$TMP_DIR"
   1.551 +		cat > "$file/receipt" <<EOT
   1.552  # SliTaz package receipt.
   1.553  # generated by tazpkg from debian package $(basename "$PACKAGE_FILE")
   1.554  PACKAGE="$package"
   1.555 @@ -486,53 +488,56 @@
   1.556  WEB_SITE="${homepage:-http://packages.debian.org/search?keywords=$package}"
   1.557  MAINTAINER="nobody@slitaz.org"
   1.558  EOT
   1.559 -		LICENSE="$(grep /usr/share/common-licenses/ \
   1.560 -		  "$PACKAGE_FILE" $TMP_DIR/$file/fs/usr/share/doc/*/copyright | \
   1.561 -		  sed 's|.*common-licenses/\([-\.A-Za-z0-9]*\).*|\1|;s|[-\.]$||;q')"
   1.562 -		[ -n "$LICENSE" ] && echo "LICENSE=\"$LICENSE\"" >> $file/receipt
   1.563 -		echo "DEPENDS=\"$(find_depends)\"" >> $file/receipt
   1.564 -		[ -s 'conffiles' ] && cat >> $file/receipt <<EOT
   1.565 +		LICENSE=$(grep /usr/share/common-licenses/ \
   1.566 +		  "$PACKAGE_FILE" "$TMP_DIR/$file/fs/usr/share/doc/"*"/copyright" | \
   1.567 +		  sed 's|.*common-licenses/\([-\.A-Za-z0-9]*\).*|\1|;s|[-\.]$||;q')
   1.568 +		[ -n "$LICENSE" ] && echo "LICENSE=\"$LICENSE\"" >> "$file/receipt"
   1.569 +		echo "DEPENDS=\"$(find_depends)\"" >> "$file/receipt"
   1.570 +		[ -s 'conffiles' ] && cat >> "$file/receipt" <<EOT
   1.571  CONFIG_FILES="$(cat conffiles)"
   1.572  EOT
   1.573 -		show_unresolved_lib $file/receipt
   1.574 +		show_unresolved_lib "$file/receipt"
   1.575  		awk '
   1.576  {
   1.577 -   if (/^ / && show) print substr($0,2);
   1.578 -   else show=0;
   1.579 -   if (/^Description/) show=1;
   1.580 -}' < $TMP_DIR/control > $file/description.txt
   1.581 -		sed -i 's/^\.$//' $file/description.txt
   1.582 -		[ -s "$file/description.txt" ] || rm -f $file/description.txt
   1.583 -		tazpkg pack $file
   1.584 -		mv $file.tazpkg $TOP_DIR
   1.585 +	if (/^ / && show)
   1.586 +		print substr($0,2);
   1.587 +	else
   1.588 +		show=0;
   1.589 +	if (/^Description/)
   1.590 +		show=1;
   1.591 +}' < "$TMP_DIR/control" > "$file/description.txt"
   1.592 +		sed -i 's/^\.$//' "$file/description.txt"
   1.593 +		[ -s "$file/description.txt" ] || rm -f "$file/description.txt"
   1.594 +		tazpkg pack "$file"
   1.595 +		mv "$file.tazpkg" "$TOP_DIR"
   1.596  		;;
   1.597  	*)
   1.598  		_ 'Invalid target: %s (expected i386)' "$target"
   1.599  		;;
   1.600  	esac
   1.601 -	cd $TOP_DIR
   1.602 -	rm -rf $TMP_DIR
   1.603 +	cd "$TOP_DIR"
   1.604 +	rm -rf "$TMP_DIR"
   1.605  }
   1.606  
   1.607  
   1.608  # convert a .rpm package to .tazpkg
   1.609  
   1.610  convert_rpm() {
   1.611 -	mkdir -p $TMP_DIR
   1.612 -	cp "$PACKAGE_FILE" $TMP_DIR
   1.613 +	mkdir -p "$TMP_DIR"
   1.614 +	cp "$PACKAGE_FILE" "$TMP_DIR"
   1.615  	PACKAGE_FILE="$TMP_DIR/$(basename "$PACKAGE_FILE")"
   1.616  	rpm -qip "$PACKAGE_FILE" | awk -v pkg="$(basename "$PACKAGE_FILE")" '
   1.617  BEGIN {
   1.618  	goturl=0;
   1.619  	printf "# SliTaz package receipt.\n";
   1.620 -	printf "# generated by tazpkg from rpm package %s\n",pkg;
   1.621 +	printf "# generated by tazpkg from rpm package %s\n", pkg;
   1.622  }
   1.623  {
   1.624 -	if (/^Name/) { name=$3; printf "PACKAGE=\"%s\"\n",$3; }
   1.625 -	if (/^Version/) printf "VERSION=\"%s-",$3;
   1.626 -	if (/^Release/) printf "%s\"\n",$3;
   1.627 -	if (/^Summary/) printf "SHORT_DESC=\"%s\"\n",substr($0,15);
   1.628 -	if (/^URL/) { goturl=1; printf "WEB_SITE=\"%s\"\n",$3; }
   1.629 +	if (/^Name/) { name=$3; printf "PACKAGE=\"%s\"\n", $3; }
   1.630 +	if (/^Version/) printf "VERSION=\"%s-", $3;
   1.631 +	if (/^Release/) printf "%s\"\n", $3;
   1.632 +	if (/^Summary/) printf "SHORT_DESC=\"%s\"\n", substr($0, 15);
   1.633 +	if (/^URL/) { goturl=1; printf "WEB_SITE=\"%s\"\n", $3; }
   1.634  }
   1.635  END {
   1.636  	if (goturl == 0)
   1.637 @@ -540,29 +545,29 @@
   1.638  	printf "CATEGORY=\"misc\"\n";
   1.639  	printf "MAINTAINER=\"nobody@slitaz.org\"\n";
   1.640  }
   1.641 -' > $TMP_DIR/receipt
   1.642 -	. $TMP_DIR/receipt
   1.643 +' > "$TMP_DIR/receipt"
   1.644 +	. "$TMP_DIR/receipt"
   1.645  	file="$PACKAGE-$VERSION"
   1.646 -	mkdir -p $TMP_DIR/$file/fs/
   1.647 -	mv $TMP_DIR/receipt $TMP_DIR/$file
   1.648 +	mkdir -p "$TMP_DIR/$file/fs/"
   1.649 +	mv "$TMP_DIR/receipt" "$TMP_DIR/$file"
   1.650  	rpm -qip "$PACKAGE_FILE" | awk '
   1.651  BEGIN { show=0 }
   1.652  {
   1.653 -  if (show) print;
   1.654 -  if (/^Description/) show=1;
   1.655 +	if (show) print;
   1.656 +	if (/^Description/) show=1;
   1.657  }
   1.658 -' > $TMP_DIR/$file/description.txt
   1.659 -	cd $TMP_DIR/$file/fs/
   1.660 +' > "$TMP_DIR/$file/description.txt"
   1.661 +	cd "$TMP_DIR/$file/fs/"
   1.662  	rpm2cpio "$PACKAGE_FILE" | cpio -idm --quiet
   1.663  	# rpm2cpio can't extract some new RPMs
   1.664  	if [ $? -eq 1 ]; then
   1.665 -		if [ ! -e $INSTALLED/p7zip-full/receipt ]; then
   1.666 +		if [ ! -e "$INSTALLED/p7zip-full/receipt" ]; then
   1.667  			boldify "$(_ 'Unable to extract the RPM using standard tools (rpm2cpio).')"
   1.668  			confirm "$(_n 'Do you want to install "%s" package? (y/N)' 'p7zip-full')"
   1.669  			if [ $? -eq 0 ]; then
   1.670  				tazpkg -gi p7zip-full
   1.671  			else
   1.672 -				rm -rf $TMP_DIR
   1.673 +				rm -rf "$TMP_DIR"
   1.674  				exit 1
   1.675  			fi
   1.676  		fi
   1.677 @@ -572,12 +577,12 @@
   1.678  		fi
   1.679  	fi
   1.680  	cd ../..
   1.681 -	echo "DEPENDS=\"$(find_depends)\"" >> $TMP_DIR/$file/receipt
   1.682 -	show_unresolved_lib $TMP_DIR/$file/receipt
   1.683 -	tazpkg pack $file
   1.684 -	mv $file.tazpkg $TOP_DIR
   1.685 -	cd $TOP_DIR
   1.686 -	rm -rf $TMP_DIR
   1.687 +	echo "DEPENDS=\"$(find_depends)\"" >> "$TMP_DIR/$file/receipt"
   1.688 +	show_unresolved_lib "$TMP_DIR/$file/receipt"
   1.689 +	tazpkg pack "$file"
   1.690 +	mv "$file.tazpkg" "$TOP_DIR"
   1.691 +	cd "$TOP_DIR"
   1.692 +	rm -rf "$TMP_DIR"
   1.693  }
   1.694  
   1.695  
   1.696 @@ -589,12 +594,12 @@
   1.697  }
   1.698  
   1.699  convert_xbps() {
   1.700 -	mkdir -p $TMP_DIR/fs
   1.701 +	mkdir -p "$TMP_DIR/fs"
   1.702  	( xzcat "$PACKAGE_FILE" || bzcat "$PACKAGE_FILE" || zcat "$PACKAGE_FILE" ) | \
   1.703 -		tar -xf - -C $TMP_DIR/fs
   1.704 +		tar -xf - -C "$TMP_DIR/fs"
   1.705  
   1.706 -	cd $TMP_DIR
   1.707 -	HOST_ARCH="$(xbpstag architecture)"
   1.708 +	cd "$TMP_DIR"
   1.709 +	HOST_ARCH=$(xbpstag architecture)
   1.710  	case "$HOST_ARCH" in
   1.711  		i686)	HOST_ARCH='i486';;
   1.712  		*)		_ 'Arch "%s" not supported.' "$HOST_ARCH"
   1.713 @@ -602,11 +607,11 @@
   1.714  	esac
   1.715  
   1.716  	if [ -n "$HOST_ARCH" ]; then
   1.717 -		package="$(xbpstag pkgname)"
   1.718 -		version="$(xbpstag version)"
   1.719 +		package=$(xbpstag pkgname)
   1.720 +		version=$(xbpstag version)
   1.721  		file="$package-$version"
   1.722 -		mkdir $file
   1.723 -		cat > $file/receipt <<EOT
   1.724 +		mkdir "$file"
   1.725 +		cat > "$file/receipt" <<EOT
   1.726  # SliTaz package receipt.
   1.727  # generated by tazpkg from package $(basename "$PACKAGE_FILE")
   1.728  PACKAGE="$package"
   1.729 @@ -623,11 +628,11 @@
   1.730  
   1.731  EOT
   1.732  		while read script func ; do
   1.733 -			[ -s "fs/$script" ] && cat >> $file/receipt <<EOT
   1.734 +			[ -s "fs/$script" ] && cat >> "$file/receipt" <<EOT
   1.735  xbps_$func()
   1.736  {
   1.737  set +e
   1.738 -$(cat fs/$script)
   1.739 +$(cat "fs/$script")
   1.740  }
   1.741  
   1.742  pre_$func()
   1.743 @@ -641,23 +646,23 @@
   1.744  }
   1.745  
   1.746  EOT
   1.747 -			rm -f fs/$script
   1.748 +			rm -f "fs/$script"
   1.749  		done <<EOT
   1.750  INSTALL		install
   1.751  REMOVE		remove
   1.752  EOT
   1.753  		rm -f fs/*.plist
   1.754 -		mv fs $package-$version
   1.755 -		tazpkg pack $package-$version
   1.756 -		mv $package-$version.tazpkg $TOP_DIR
   1.757 +		mv fs "$package-$version"
   1.758 +		tazpkg pack "$package-$version"
   1.759 +		mv "$package-$version.tazpkg" "$TOP_DIR"
   1.760  	fi
   1.761 -	cd $TOP_DIR
   1.762 -	rm -rf $TMP_DIR
   1.763 +	cd "$TOP_DIR"
   1.764 +	rm -rf "$TMP_DIR"
   1.765  }
   1.766  
   1.767  
   1.768  finish_convert_tinycore() {
   1.769 -	cat > $file/receipt <<EOT
   1.770 +	cat > "$file/receipt" <<EOT
   1.771  # SliTaz package receipt.
   1.772  # generated by tazpkg from tinycore package $(basename "$PACKAGE_FILE")
   1.773  PACKAGE="$package"
   1.774 @@ -668,9 +673,9 @@
   1.775  MAINTAINER="nobody@slitaz.org"
   1.776  DEPENDS="$(find_depends)"
   1.777  EOT
   1.778 -	show_unresolved_lib $file/receipt
   1.779 +	show_unresolved_lib "$file/receipt"
   1.780  	script="$file/fs/usr/local/tce.installed/$PACKAGE"
   1.781 -	[ -f "$script" ] && cat >> $file/receipt <<EOM
   1.782 +	[ -f "$script" ] && cat >> "$file/receipt" <<EOM
   1.783  
   1.784  post_install()
   1.785  {
   1.786 @@ -681,11 +686,11 @@
   1.787  }
   1.788  EOM
   1.789  	[ -d "$file/fs/usr/local/tce.installed" ] &&
   1.790 -	rm -rf $file/fs/usr/local/tce.installed
   1.791 -	tazpkg pack $file
   1.792 -	mv $file.tazpkg $TOP_DIR
   1.793 -	cd $TOP_DIR
   1.794 -	rm -rf $TMP_DIR
   1.795 +	rm -rf "$file/fs/usr/local/tce.installed"
   1.796 +	tazpkg pack "$file"
   1.797 +	mv "$file.tazpkg" "$TOP_DIR"
   1.798 +	cd "$TOP_DIR"
   1.799 +	rm -rf "$TMP_DIR"
   1.800  }
   1.801  
   1.802  
   1.803 @@ -696,15 +701,15 @@
   1.804  		_ 'File "%s" does not look like %s package!' "$PACKAGE_FILE" 'Tinycore'
   1.805  		return 1
   1.806  	fi
   1.807 -	mkdir -p $TMP_DIR
   1.808 -	cd $TMP_DIR
   1.809 +	mkdir -p "$TMP_DIR"
   1.810 +	cd "$TMP_DIR"
   1.811  	case "$PACKAGE_FILE" in
   1.812  		*.tcel) parse_pkgname .tcel ;;
   1.813  		*.tcem) parse_pkgname .tcem ;;
   1.814  		*)      parse_pkgname .tce ;;
   1.815  	esac
   1.816 -	mkdir -p $file/fs
   1.817 -	tar -xzf "$PACKAGE_FILE" -C $file/fs
   1.818 +	mkdir -p "$file/fs"
   1.819 +	tar -xzf "$PACKAGE_FILE" -C "$file/fs"
   1.820  	finish_convert_tinycore
   1.821  }
   1.822  
   1.823 @@ -717,11 +722,11 @@
   1.824  		_ 'File "%s" does not look like %s package!' "$PACKAGE_FILE" 'Tinycore'
   1.825  		return 1
   1.826  	fi
   1.827 -	mkdir -p $TMP_DIR
   1.828 -	cd $TMP_DIR
   1.829 +	mkdir -p "$TMP_DIR"
   1.830 +	cd "$TMP_DIR"
   1.831  	parse_pkgname .tcz
   1.832  	unsquashfs "$PACKAGE_FILE"
   1.833 -	mv squashfs-root $file/fs
   1.834 +	mv squashfs-root "$file/fs"
   1.835  	finish_convert_tinycore
   1.836  }
   1.837  
   1.838 @@ -735,7 +740,7 @@
   1.839  		*.sb)					convert_sb;;
   1.840  		*.sfs)					convert_sfs;;
   1.841  		*.pet)					convert_pet;;
   1.842 -		*.txz|*.tgz)				convert_tgz;;
   1.843 +		*.txz|*.tgz)			convert_tgz;;
   1.844  		*.cards.tar.xz)			convert_nutyx;;
   1.845  		*.apk|*.pkg.tar.gz|*.pkg.tar.xz)	convert_arch;;
   1.846  		*.ipk|*.opk)			convert_ipk;;