tazpkg 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 d25da6d9be7a
children 608981c962f8
files Makefile mime/packages/tazpkg.xml po/fr.po po/zh_TW.po tazpkg tazpkg-convert tazpkg-find-depends xdg/autostart/tazpkg-notify.desktop
line diff
     1.1 --- a/Makefile	Mon Dec 01 01:06:57 2014 +0200
     1.2 +++ b/Makefile	Tue Dec 02 02:22:09 2014 +0200
     1.3 @@ -13,6 +13,7 @@
     1.4  
     1.5  all: msgfmt
     1.6  
     1.7 +
     1.8  # i18n.
     1.9  
    1.10  pot:
    1.11 @@ -40,49 +41,75 @@
    1.12  		fi; \
    1.13  	done;
    1.14  
    1.15 +
    1.16  # Installation.
    1.17  
    1.18  install: msgfmt
    1.19  	# TazPkg command line interface
    1.20 -	install -m 0755 -d $(DESTDIR)$(PREFIX)/bin
    1.21 -	install -m 0777 tazpkg $(DESTDIR)$(PREFIX)/bin
    1.22 +	install -m 0755 -d                  $(DESTDIR)$(PREFIX)/bin
    1.23 +	install -m 0777 tazpkg              $(DESTDIR)$(PREFIX)/bin
    1.24 +	install -m 0777 tazpkg-convert      $(DESTDIR)$(PREFIX)/bin
    1.25 +	install -m 0755 -d                  $(DESTDIR)$(PREFIX)/lib/tazpkg
    1.26 +	install -m 0777 tazpkg-find-depends $(DESTDIR)$(PREFIX)/lib/tazpkg
    1.27 +
    1.28  	# TazPkg-box GUI
    1.29  	install -m 0777 tazpkg-notify $(DESTDIR)$(PREFIX)/bin
    1.30 -	install -m 0777 tazpkg-box $(DESTDIR)$(PREFIX)/bin
    1.31 +	install -m 0777 tazpkg-box    $(DESTDIR)$(PREFIX)/bin
    1.32 +
    1.33  	# Configuration files
    1.34 -	install -m 0755 -d $(DESTDIR)$(SYSCONFDIR)
    1.35 +	install -m 0755 -d          $(DESTDIR)$(SYSCONFDIR)
    1.36  	install -m 0644 tazpkg.conf $(DESTDIR)$(SYSCONFDIR)
    1.37 +
    1.38  	# Documentation
    1.39  	install -m 0755 -d $(DESTDIR)$(DOCDIR)/tazpkg
    1.40 -	cp -a doc/* $(DESTDIR)$(DOCDIR)/tazpkg
    1.41 +	cp -a doc/*        $(DESTDIR)$(DOCDIR)/tazpkg
    1.42 +
    1.43  	# TazPanel files
    1.44  	install -m 0755 -d $(DESTDIR)/var/www/tazpanel/menu.d
    1.45 -	cp -a pkgs.cgi $(DESTDIR)/var/www/tazpanel
    1.46 -	cp -a pkgs $(DESTDIR)/var/www/tazpanel/menu.d
    1.47 +	cp -a pkgs.cgi     $(DESTDIR)/var/www/tazpanel
    1.48 +	cp -a pkgs         $(DESTDIR)/var/www/tazpanel/menu.d
    1.49 +
    1.50  	# The i18n files
    1.51  	install -m 0755 -d $(DESTDIR)$(PREFIX)/share/locale
    1.52 -	cp -a po/mo/* $(DESTDIR)$(PREFIX)/share/locale
    1.53 +	cp -a po/mo/*      $(DESTDIR)$(PREFIX)/share/locale
    1.54 +
    1.55  	# Desktop integration
    1.56 -	mkdir -p $(DESTDIR)$(PREFIX)/share
    1.57 -	cp -a  applications $(DESTDIR)$(PREFIX)/share
    1.58 -	cp -a  mime $(DESTDIR)$(PREFIX)/share
    1.59 -	cp -a  pixmaps $(DESTDIR)$(PREFIX)/share
    1.60 -	# TazPKG Notify XDG autostart
    1.61 -	mkdir -p $(DESTDIR)/etc/xdg
    1.62 +	mkdir -p           $(DESTDIR)$(PREFIX)/share
    1.63 +	cp -a applications $(DESTDIR)$(PREFIX)/share
    1.64 +	#cp -a mime         $(DESTDIR)$(PREFIX)/share # moved to shared-mime-info package
    1.65 +	cp -a pixmaps      $(DESTDIR)$(PREFIX)/share
    1.66 +
    1.67 +	# TazPkg Notify XDG autostart
    1.68 +	mkdir -p            $(DESTDIR)/etc/xdg
    1.69  	cp -a xdg/autostart $(DESTDIR)/etc/xdg
    1.70 -	
    1.71 +
    1.72  
    1.73  # Uninstallation and clean-up commands.
    1.74  
    1.75  uninstall:
    1.76 -	rm -f $(DESTDIR)$(PREFIX)/bin/tazpkg
    1.77 -	rm -f $(DESTDIR)$(PREFIX)/bin/tazpkg-box
    1.78 -	rm -f $(DESTDIR)$(PREFIX)/var/www/tazpanel/menu.d/pkgs
    1.79 -	rm -f $(DESTDIR)$(PREFIX)/var/www/tazpanel/pkgs.cgi
    1.80 -	rm -rf $(DESTDIR)$(PREFIX)/tazpkg-notify
    1.81 +	rm -f  $(DESTDIR)$(PREFIX)/bin/tazpkg
    1.82 +	rm -f  $(DESTDIR)$(PREFIX)/bin/tazpkg-convert
    1.83 +	rm -f  $(DESTDIR)$(PREFIX)/lib/tazpkg/tazpkg-find-depends
    1.84 +
    1.85 +	rm -f  $(DESTDIR)$(PREFIX)/bin/tazpkg-notify
    1.86 +	rm -f  $(DESTDIR)$(PREFIX)/bin/tazpkg-box
    1.87 +
    1.88 +	rm -f  $(DESTDIR)$(SYSCONFDIR)/tazpkg.conf
    1.89 +
    1.90  	rm -rf $(DESTDIR)$(DOCDIR)/tazpkg
    1.91 -	rm -f $(DESTDIR)$(SYSCONFDIR)/tazpkg.conf 
    1.92 -	rm -rf $(DESTDIR)$(PREFIX)/share/locale/*/LC_MESSAGES/tazpkg*.mo
    1.93 +
    1.94 +	rm -f  $(DESTDIR)/var/www/tazpanel/pkgs.cgi
    1.95 +	rm -f  $(DESTDIR)/var/www/tazpanel/menu.d/pkgs
    1.96 +
    1.97 +	rm -rf $(DESTDIR)$(PREFIX)/share/locale/*/LC_MESSAGES/tazpkg.mo
    1.98 +
    1.99 +	rm -f  $(DESTDIR)$(PREFIX)/share/applications/tazpkg-*.desktop
   1.100 +	rm -f  $(DESTDIR)$(PREFIX)/share/applications/tazpanel-pkgs.desktop
   1.101 +
   1.102 +	rm -f  $(DESTDIR)$(PREFIX)/share/pixmaps/tazpkg*.png
   1.103 +
   1.104 +	rm -f  $(DESTDIR)/etc/xdg/autostart/tazpkg-notify.desktop
   1.105 +
   1.106  
   1.107  clean:
   1.108  	rm -rf _pkg
   1.109 @@ -90,19 +117,20 @@
   1.110  	rm -rf po/mo
   1.111  	rm -f po/*~
   1.112  	rm -f po/*.mo
   1.113 -	
   1.114 +
   1.115  
   1.116  targz:
   1.117  	rm -rf ${tmpdir}
   1.118  	mkdir -p ${tmpdir}
   1.119 -	
   1.120 +
   1.121  	make DESTDIR=${tmpdir} install
   1.122 -	
   1.123 +
   1.124  	cd tar-install ; \
   1.125  	tar cvzf ${tarball} tazpkg-$(VERSION) ; \
   1.126  	cd -
   1.127 -	
   1.128 +
   1.129  	@echo "** Tarball successfully created in tar-install/${tarball}"
   1.130  
   1.131 +
   1.132  help:
   1.133  	@echo "make [ pot | msgmerge | msgfmt | all | install | uninstall | clear | targz ]"
     2.1 --- a/mime/packages/tazpkg.xml	Mon Dec 01 01:06:57 2014 +0200
     2.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.3 @@ -1,10 +0,0 @@
     2.4 -<?xml version="1.0" encoding="UTF-8"?>
     2.5 -<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
     2.6 -	<mime-type type="application/x-tazpkg">
     2.7 -		<comment>SliTaz package</comment>
     2.8 -		<comment xml:lang="en">SliTaz package</comment>
     2.9 -		<comment xml:lang="ru">пакет SliTaz</comment>
    2.10 -		<sub-class-of type="application/x-cpio"/>
    2.11 -		<glob pattern="*.tazpkg"/>
    2.12 -	</mime-type>
    2.13 -</mime-info>
     3.1 --- a/po/fr.po	Mon Dec 01 01:06:57 2014 +0200
     3.2 +++ b/po/fr.po	Tue Dec 02 02:22:09 2014 +0200
     3.3 @@ -338,7 +338,7 @@
     3.4  "You can use the --forced option to force installation."
     3.5  msgstr ""
     3.6  "le paquet est déjà installé.\n"
     3.7 -"Vous pouvez utiliser l'option --forced pour forcer son installation.\n"
     3.8 +"Vous pouvez utiliser l'option --forced pour forcer son installation."
     3.9  
    3.10  #: tazpkg:310
    3.11  #, sh-format
     4.1 --- a/po/zh_TW.po	Mon Dec 01 01:06:57 2014 +0200
     4.2 +++ b/po/zh_TW.po	Tue Dec 02 02:22:09 2014 +0200
     4.3 @@ -421,7 +421,7 @@
     4.4  "Leaving dependencies for $PACKAGE unresolved.\n"
     4.5  "The package is installed but will probably not work."
     4.6  msgstr ""
     4.7 -"$PACKAGE 有未解決包依賴".
     4.8 +"$PACKAGE 有未解決包依賴."
     4.9  "包已安裝但可能無法正常工作."
    4.10  
    4.11  #: tazpkg:910
     5.1 --- a/tazpkg	Mon Dec 01 01:06:57 2014 +0200
     5.2 +++ b/tazpkg	Tue Dec 02 02:22:09 2014 +0200
     5.3 @@ -25,6 +25,7 @@
     5.4  
     5.5  . /lib/libtaz.sh
     5.6  . /usr/lib/slitaz/libpkg.sh
     5.7 +. /usr/lib/tazpkg/tazpkg-find-depends
     5.8  
     5.9  # Internationalization.
    5.10  #. /usr/bin/gettext.sh
    5.11 @@ -116,8 +117,6 @@
    5.12  UP_LIST=$LOCALSTATE/packages.up
    5.13  DEFAULT_MIRROR="$ONLINE_PKGS"
    5.14  
    5.15 -# Need by check_depends
    5.16 -TMPLOCALSTATE=
    5.17  
    5.18  
    5.19  
    5.20 @@ -1252,606 +1251,6 @@
    5.21  }
    5.22  
    5.23  
    5.24 -# Check for ELF file
    5.25 -
    5.26 -is_elf()
    5.27 -{
    5.28 -	[ "$(dd if=$1 bs=1 skip=1 count=3 2> /dev/null)" = "ELF" ]
    5.29 -}
    5.30 -
    5.31 -
    5.32 -# Print shared library dependencies
    5.33 -
    5.34 -ldd()
    5.35 -{
    5.36 -	LD_TRACE_LOADED_OBJECTS=1 /lib/ld*.so $1 2> /dev/null
    5.37 -}
    5.38 -
    5.39 -
    5.40 -# search dependencies for files in $TMP_DIR/$file/fs
    5.41 -
    5.42 -find_depends()
    5.43 -{
    5.44 -	DEFAULT_DEPENDS="glibc-base gcc-lib-base"
    5.45 -
    5.46 -	[ -n "$TMPLOCALSTATE" ] || TMPLOCALSTATE=$LOCALSTATE
    5.47 -	[ -f $TMPLOCALSTATE/files.list.lzma ] || tazpkg recharge > /dev/null
    5.48 -	for i in $TMPLOCALSTATE/files.list.lzma \
    5.49 -		$TMPLOCALSTATE/undigest/*/files.list.lzma ; do
    5.50 -		[ -f $i ] && lzma d $i -so >> $TMP_DIR/files.list
    5.51 -	done
    5.52 -
    5.53 -	find ${1:-$TMP_DIR/$file/fs} -type f | \
    5.54 -	while read chkfile ; do
    5.55 -		is_elf $chkfile || continue
    5.56 -		case "$chkfile" in
    5.57 -			*.o|*.ko|*.ko.gz) continue;;
    5.58 -		esac
    5.59 -
    5.60 -		ldd $chkfile | \
    5.61 -		while read lib rem; do
    5.62 -			case "$lib" in
    5.63 -				statically|linux-gate.so*|ld-*.so|*/ld-*.so) continue;;
    5.64 -			esac
    5.65 -			find ${1:-$TMP_DIR/$file/fs} | grep -q /$lib$ && continue
    5.66 -
    5.67 -			for dep in $(fgrep $lib files.list | cut -d: -f1); do
    5.68 -				case " $DEFAULT_DEPENDS " in
    5.69 -					*\ $dep\ *) continue 2;;
    5.70 -				esac
    5.71 -				grep -qs "^$dep$" $TMP_DIR/depends && continue 2
    5.72 -			done
    5.73 -
    5.74 -			if [ -n "$dep" ]; then
    5.75 -				echo "$dep" >> $TMP_DIR/depends
    5.76 -			else
    5.77 -				grep -qs ^$lib$ $TMP_DIR/unresolved ||
    5.78 -					echo "$lib" >> $TMP_DIR/unresolved
    5.79 -			fi
    5.80 -		done
    5.81 -	done
    5.82 -
    5.83 -	spc=""
    5.84 -	sort < $TMP_DIR/depends 2> /dev/null | uniq | \
    5.85 -	while read file; do
    5.86 -		echo -n "$spc$file"
    5.87 -		spc=" "
    5.88 -	done
    5.89 -}
    5.90 -
    5.91 -
    5.92 -show_unresolved_lib()
    5.93 -{
    5.94 -	if [ -s $TMP_DIR/unresolved ]; then
    5.95 -		echo -e "BUGS=\"`gettext \"No dependency for\"`" >> $1
    5.96 -		sort < $TMP_DIR/unresolved | uniq | \
    5.97 -		while read file; do
    5.98 -			_ 'WARNING: unknown dependency for $lib'
    5.99 -			echo -n " $file" >> $1
   5.100 -		done
   5.101 -		echo "\"" >> $1
   5.102 -	fi
   5.103 -}
   5.104 -
   5.105 -
   5.106 -# convert a .tar.bz2 package to .tazpkg
   5.107 -
   5.108 -convert_upkg()
   5.109 -{
   5.110 -	mkdir -p $TMP_DIR/fs
   5.111 -	tar xjf $PACKAGE_FILE -C $TMP_DIR/fs
   5.112 -	if [ -d $TMP_DIR/fs/var/lib/upkg/packages ]; then
   5.113 -		cd $TMP_DIR
   5.114 -		package="$(sed '/^Package:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)"
   5.115 -		version="$(sed '/^Version:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)"
   5.116 -		url="http://www.paldo.org/"
   5.117 -		file=$package-$version
   5.118 -		mkdir $file
   5.119 -		mv fs $file
   5.120 -		maintainer=nobody@slitaz.org
   5.121 -		descrip="$package package from paldo."
   5.122 -		cat > $file/receipt <<EOT
   5.123 -# SliTaz package receipt.
   5.124 -# generated by tazpkg from package $(basename $PACKAGE_FILE)
   5.125 -PACKAGE="$package"
   5.126 -VERSION="$version"
   5.127 -CATEGORY="misc"
   5.128 -SHORT_DESC="$descrip"
   5.129 -WEB_SITE="$url"
   5.130 -MAINTAINER="$maintainer"
   5.131 -DEPENDS="$(find_depends)"
   5.132 -EOT
   5.133 -		[ -s $file/var/lib/upkg/files/*.config.bz2 ] &&
   5.134 -			cat >> $file/receipt <<EOT
   5.135 -CONFIG_FILES="$(bzcat $file/var/lib/upkg/files/*.config.bz2)"
   5.136 -EOT
   5.137 -		while read ext func ; do
   5.138 -			[ -s $file/fs/var/lib/upkg/scripts/*.$ext ] || continue
   5.139 -			cat >> $file/receipt <<EOT
   5.140 -
   5.141 -$func()
   5.142 -{
   5.143 -$(cat $file/fs/var/lib/upkg/scripts/*.$ext)
   5.144 -}
   5.145 -EOT
   5.146 -		done <<EOT
   5.147 -prerm	pre_remove
   5.148 -EOT
   5.149 -
   5.150 -		tazpkg pack $file
   5.151 -		mv $TMP_DIR/$file.tazpkg $TOP_DIR
   5.152 -	else
   5.153 -		_ '$PACKAGE_FILE does not look like an upkg package!'
   5.154 -	fi
   5.155 -	cd $TOP_DIR
   5.156 -	rm -rf $TMP_DIR
   5.157 -}
   5.158 -
   5.159 -
   5.160 -# convert a .spack package to .tazpkg
   5.161 -
   5.162 -convert_spack()
   5.163 -{
   5.164 -	mkdir -p $TMP_DIR
   5.165 -	( cd $TMP_DIR ; cpio -i ) < $PACKAGE_FILE
   5.166 -	cd $TMP_DIR
   5.167 -	package="$(sed '$!d;s/:.*//' about.txt)"
   5.168 -	version="$(basename $PACKAGE_FILE | sed "s/$package-\([^-]*\).*/\1/")"
   5.169 -	descrip="$(sed '$!d;s/.*: //' about.txt)"
   5.170 -	url="http://0linux.org/"
   5.171 -	maintainer=nobody@slitaz.org
   5.172 -	file=$package-$version
   5.173 -	mkdir -p $file/fs
   5.174 -	xzcat files.xz | ( cd $file/fs ; cpio -idmu )
   5.175 -	cat > $file/receipt <<EOT
   5.176 -# SliTaz package receipt.
   5.177 -# generated by tazpkg from package $(basename $PACKAGE_FILE)
   5.178 -PACKAGE="$package"
   5.179 -VERSION="$version"
   5.180 -CATEGORY="misc"
   5.181 -SHORT_DESC="$descrip"
   5.182 -WEB_SITE="$url"
   5.183 -MAINTAINER="$maintainer"
   5.184 -DEPENDS="$(find_depends)"
   5.185 -EOT
   5.186 -	[ -s pre-install.sh ] && cat >> $file/receipt <<EOT
   5.187 -
   5.188 -pre_install()
   5.189 -{
   5.190 -	cd /
   5.191 -$(sed 1d pre-install.sh)
   5.192 -}
   5.193 -EOT
   5.194 -	[ -s post-install.sh ] && cat >> $file/receipt <<EOT
   5.195 -
   5.196 -post_install()
   5.197 -{
   5.198 -	cd /
   5.199 -$(sed '1,/^}/d' post-install.sh)
   5.200 -}
   5.201 -EOT
   5.202 -	tazpkg pack $file
   5.203 -	cd $TOP_DIR
   5.204 -	mv $TMP_DIR/$file.tazpkg .
   5.205 -	rm -rf $TMP_DIR
   5.206 -}
   5.207 -
   5.208 -
   5.209 -# convert a .ipk package to .tazpkg
   5.210 -
   5.211 -convert_ipk()
   5.212 -{
   5.213 -	mkdir -p $TMP_DIR
   5.214 -	tar xOzf $PACKAGE_FILE ./control.tar.gz | tar xzf - -C $TMP_DIR
   5.215 -	package="$(grep ^Package $TMP_DIR/control | sed 's/.*: //')"
   5.216 -	version="$(grep ^Version $TMP_DIR/control | sed 's/.*: //')"
   5.217 -	maintainer="$(grep ^Maintainer $TMP_DIR/control | sed 's/.*: //')"
   5.218 -	target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')"
   5.219 -	descrip="$(grep ^Description $TMP_DIR/control | sed 's/.*: //')"
   5.220 -	url="http://openwrt.org/"
   5.221 -	case "$target" in
   5.222 -	i386|all)
   5.223 -		file=$package-$version
   5.224 -		mkdir -p $TMP_DIR/$file/fs
   5.225 -		tar xOzf $PACKAGE_FILE ./data.tar.gz | tar xzf - -C $TMP_DIR/$file/fs
   5.226 -		cd $TMP_DIR
   5.227 -		cat > $file/receipt <<EOT
   5.228 -# SliTaz package receipt.
   5.229 -# generated by tazpkg from package $(basename $PACKAGE_FILE)
   5.230 -PACKAGE="$package"
   5.231 -VERSION="$version"
   5.232 -CATEGORY="misc"
   5.233 -SHORT_DESC="$descrip"
   5.234 -WEB_SITE="$url"
   5.235 -MAINTAINER="$maintainer"
   5.236 -DEPENDS="$(find_depends)"
   5.237 -EOT
   5.238 -		show_unresolved_lib $file/receipt
   5.239 -		[ -s conffiles ] && cat >> $file/receipt <<EOT
   5.240 -CONFIG_FILES="$(cat conffiles)"
   5.241 -EOT
   5.242 -		show_unresolved_lib $file/receipt
   5.243 -		while read script func; do
   5.244 -			[ -s $script ] && cat >> $file/receipt <<EOT
   5.245 -
   5.246 -$func()
   5.247 -{
   5.248 -$(cat $script)
   5.249 -}
   5.250 -EOT
   5.251 -		done <<EOT
   5.252 -preinst		pre_install
   5.253 -postinst	post_install
   5.254 -prerm		pre_remove
   5.255 -postrm		post_remove
   5.256 -EOT
   5.257 -		awk '
   5.258 -{
   5.259 -   if (/^ / && show) print substr($0,2);
   5.260 -   else show=0;
   5.261 -   if (/^Description/) show=1;
   5.262 -}' < $TMP_DIR/control > $file/description.txt
   5.263 -		sed -i 's/^\.$//' $file/description.txt
   5.264 -		[ -s $file/description.txt ] || rm -f $file/description.txt
   5.265 -		tazpkg pack $file
   5.266 -		cd $TOP_DIR
   5.267 -		mv $TMP_DIR/$file.tazpkg .
   5.268 -		;;
   5.269 -	*)
   5.270 -		_ 'Invalid target: $target (expected i386)'
   5.271 -		;;
   5.272 -	esac
   5.273 -	rm -rf $TMP_DIR
   5.274 -}
   5.275 -
   5.276 -
   5.277 -# convert a .pkg.tar.gz/.pkg.tar.xz/.apk package to .tazpkg
   5.278 -
   5.279 -convert_arch()
   5.280 -{
   5.281 -	mkdir -p $TMP_DIR/fs
   5.282 -	busybox tar xf $PACKAGE_FILE -C $TMP_DIR/fs
   5.283 -	if [ -f $TMP_DIR/fs/.PKGINFO ]; then
   5.284 -		cd $TMP_DIR
   5.285 -		package="$(grep ^pkgname fs/.PKGINFO | sed 's/.*= //')"
   5.286 -		version="$(grep ^pkgver  fs/.PKGINFO | sed 's/.*= //')"
   5.287 -		descrip="$(grep ^pkgdesc fs/.PKGINFO | sed 's/.*= //')"
   5.288 -		url="$(grep ^url fs/.PKGINFO | sed 's/.*= //')"
   5.289 -		maintainer="$(grep ^packager fs/.PKGINFO | sed 's/.*= //')"
   5.290 -		file=$package-$version
   5.291 -		mkdir $file
   5.292 -		mv fs $file
   5.293 -		cat > $file/receipt <<EOT
   5.294 -# SliTaz package receipt.
   5.295 -# generated by tazpkg from Archlinux package $(basename $PACKAGE_FILE)
   5.296 -PACKAGE="$package"
   5.297 -VERSION="$version"
   5.298 -CATEGORY="misc"
   5.299 -SHORT_DESC="$descrip"
   5.300 -WEB_SITE="$url"
   5.301 -MAINTAINER="$maintainer"
   5.302 -DEPENDS="$(find_depends)"
   5.303 -EOT
   5.304 -		show_unresolved_lib $file/receipt
   5.305 -		rm -f $file/fs/.[A-Z]*
   5.306 -		tazpkg pack $file
   5.307 -		mv $file.tazpkg $TOP_DIR
   5.308 -	else
   5.309 -		_ '$PACKAGE_FILE does not look like an Archlinux/Alpine package!'
   5.310 -	fi
   5.311 -	cd $TOP_DIR
   5.312 -	rm -rf $TMP_DIR
   5.313 -}
   5.314 -
   5.315 -
   5.316 -# get package and version from PACKAGE_FILE
   5.317 -
   5.318 -parse_pkgname()
   5.319 -{
   5.320 -	package=$(basename ${2:-$PACKAGE_FILE} $1)
   5.321 -	IFS='-'
   5.322 -	set -- $package
   5.323 -	unset IFS
   5.324 -	package=$1
   5.325 -	version=$2
   5.326 -	if [ -z "$version" ]; then
   5.327 -		package=${1%%[0-9\.]*}
   5.328 -		version=${1#$package}
   5.329 -	fi
   5.330 -	file="$package-$version"
   5.331 -	mkdir $file
   5.332 -}
   5.333 -
   5.334 -
   5.335 -finish_convert_puppy()
   5.336 -{
   5.337 -	rm -f fs/*.specs
   5.338 -	mv fs $file
   5.339 -	cat > $file/receipt <<EOT
   5.340 -# SliTaz package receipt.
   5.341 -# generated by tazpkg from puppy package $(basename $PACKAGE_FILE)
   5.342 -PACKAGE="$package"
   5.343 -VERSION="$version"
   5.344 -CATEGORY="misc"
   5.345 -SHORT_DESC="$desc"
   5.346 -WEB_SITE="http://puppylinux.org/"
   5.347 -MAINTAINER="nobody@slitaz.org"
   5.348 -DEPENDS="$(find_depends)"
   5.349 -EOT
   5.350 -	show_unresolved_lib $file/receipt
   5.351 -	for i in install uninstall ; do
   5.352 -		[ -f $file/fs/p$i.sh ] && cat >> $file/receipt <<EOM
   5.353 -
   5.354 -post_$i()
   5.355 -{
   5.356 -chroot \$1/ sh - << EOT
   5.357 -cd /
   5.358 -$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/p$i.sh ; rm -f $file/fs/p$i.sh)
   5.359 -EOT
   5.360 -}
   5.361 -EOM
   5.362 -	done
   5.363 -	sed -i 's/post_uninstall/post_remove/' $file/receipt
   5.364 -	tazpkg pack $file
   5.365 -	mv $file.tazpkg $TOP_DIR
   5.366 -	cd $TOP_DIR
   5.367 -	rm -rf $TMP_DIR
   5.368 -}
   5.369 -
   5.370 -
   5.371 -# convert a .sfs package to .tazpkg
   5.372 -
   5.373 -convert_sfs()
   5.374 -{
   5.375 -	[ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs 
   5.376 -	if ! unsquashfs -l $PACKAGE_FILE | grep -q squashfs-root/pet.specs$ ; then
   5.377 -		_ '$PACKAGE_FILE does not look like a Puppy package!'
   5.378 -		return 1
   5.379 -	fi
   5.380 -	mkdir -p $TMP_DIR 
   5.381 -	cd $TMP_DIR
   5.382 -	parse_pkgname .sfs
   5.383 -	unsquashfs $PACKAGE_FILE
   5.384 -	mv squashfs-root fs
   5.385 -	set -- $(cat fs/pet.specs)
   5.386 -	desc="$10"
   5.387 -	finish_convert_puppy
   5.388 -}
   5.389 -
   5.390 -
   5.391 -# convert a .pet package to .tazpkg
   5.392 -
   5.393 -convert_pet()
   5.394 -{
   5.395 -	mkdir -p $TMP_DIR 
   5.396 -	cd $TMP_DIR
   5.397 -	parse_pkgname .pet
   5.398 -	tar xzf $PACKAGE_FILE 2> /dev/null
   5.399 -	. $package*/*.specs
   5.400 -	desc="$PETMENUDESCR"
   5.401 -	mv $package*/ fs
   5.402 -	finish_convert_puppy
   5.403 -}
   5.404 -
   5.405 -
   5.406 -# convert a .sb package to .tazpkg
   5.407 -
   5.408 -convert_sb()
   5.409 -{
   5.410 -	[ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs 
   5.411 -	if ! unsquashfs -l $PACKAGE_FILE | grep -q squashfs-root/var/log/removed_scripts ; then
   5.412 -		_ '$PACKAGE_FILE does not look like a Slax package!'
   5.413 -		return 1
   5.414 -	fi
   5.415 -	mkdir -p $TMP_DIR 
   5.416 -	cd $TMP_DIR
   5.417 -	unsquashfs $PACKAGE_FILE
   5.418 -	mv squashfs-root fs
   5.419 -	parse_pkgname '' $(cat fs/var/log/packages/* | sed '/PACKAGE NAME:/!d;s/.*: *//')
   5.420 -	desc="$(cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,$!d;N;s/.*: //;q')"
   5.421 -	cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,/FILE LIST/!d;s/.*://;/^$/d' > $file/description.txt
   5.422 -	mv fs $file
   5.423 -	cat > $file/receipt <<EOT
   5.424 -# SliTaz package receipt.
   5.425 -# generated by tazpkg from slax package $(basename $PACKAGE_FILE)
   5.426 -PACKAGE="$package"
   5.427 -VERSION="$version"
   5.428 -CATEGORY="misc"
   5.429 -SHORT_DESC="$desc"
   5.430 -WEB_SITE="http://www.slax.org/"
   5.431 -MAINTAINER="nobody@slitaz.org"
   5.432 -DEPENDS="$(find_depends)"
   5.433 -EOT
   5.434 -	show_unresolved_lib $file/receipt
   5.435 -	[ -f $file/fs/var/log/scripts/$package* ] && cat >> $file/receipt <<EOM
   5.436 -
   5.437 -post_install()
   5.438 -{
   5.439 -chroot \$1/ sh - << EOT
   5.440 -cd /
   5.441 -$(cat $file/fs/var/log/scripts/$package* | sed -e 's/\\/\\\\/g' | sed -e 's/\$/\\$/g')
   5.442 -EOT
   5.443 -}
   5.444 -EOM
   5.445 -	tazpkg pack $file
   5.446 -	mv $file.tazpkg $TOP_DIR
   5.447 -	cd $TOP_DIR
   5.448 -	rm -rf $TMP_DIR
   5.449 -}
   5.450 -
   5.451 -
   5.452 -# convert a .tgz package to .tazpkg
   5.453 -
   5.454 -convert_tgz()
   5.455 -{
   5.456 -	parse_pkgname
   5.457 -	mkdir -p $TMP_DIR/$file/fs
   5.458 -	tar xzf $PACKAGE_FILE -C $TMP_DIR/$file/fs
   5.459 -	cd $TMP_DIR
   5.460 -	if [ -d $file/fs/install ]; then
   5.461 -		descrip=$(grep ^$package $file/fs/install/slack-desc | \
   5.462 -			  head -1 | sed 's/.*(\(.*\)).*/\1/')
   5.463 -		cat > $file/receipt <<EOT
   5.464 -# SliTaz package receipt.
   5.465 -# generated by tazpkg from slackware package $(basename $PACKAGE_FILE)
   5.466 -PACKAGE="$package"
   5.467 -VERSION="$version"
   5.468 -CATEGORY="misc"
   5.469 -SHORT_DESC="$descrip"
   5.470 -WEB_SITE="http://www.slackware.com/packages/"
   5.471 -MAINTAINER="nobody@slitaz.org"
   5.472 -DEPENDS="$(find_depends)"
   5.473 -EOT
   5.474 -		show_unresolved_lib $file/receipt
   5.475 -		[ -f $file/fs/install/doinst.sh ] && cat >> $file/receipt <<EOM
   5.476 -
   5.477 -post_install()
   5.478 -{
   5.479 -chroot \$1/ sh - << EOT
   5.480 -cd /
   5.481 -$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/install/doinst.sh)
   5.482 -EOT
   5.483 -}
   5.484 -EOM
   5.485 -		grep ^$package $file/fs/install/slack-desc | \
   5.486 -			sed "s/^$package://" > $file/description.txt
   5.487 -		[ -s $file/description.txt ] || rm -f $file/description.txt
   5.488 -		rm -rf $file/fs/install
   5.489 -		tazpkg pack $file
   5.490 -		mv $file.tazpkg $TOP_DIR
   5.491 -	else
   5.492 -		_ '$PACKAGE_FILE does not look like a Slackware package!'
   5.493 -	fi
   5.494 -	cd $TOP_DIR
   5.495 -	rm -rf $TMP_DIR
   5.496 -}
   5.497 -
   5.498 -
   5.499 -# convert a .deb package to .tazpkg
   5.500 -
   5.501 -convert_deb()
   5.502 -{
   5.503 -	mkdir -p $TMP_DIR
   5.504 -	dpkg-deb -e $PACKAGE_FILE $TMP_DIR
   5.505 -	package=$(grep '^ *Package:' $TMP_DIR/control)
   5.506 -	package=$(echo ${package##*:})
   5.507 -	version=$(grep '^ *Version:' $TMP_DIR/control)
   5.508 -	version=$(echo ${version##*:})
   5.509 -	descrip=$(grep '^ *Description:' $TMP_DIR/control)
   5.510 -	descrip=$(echo ${descrip##*:})
   5.511 -	target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')"
   5.512 -	case "$target" in
   5.513 -	i386|all)
   5.514 -		file="$package-$version"
   5.515 -		mkdir -p $TMP_DIR/$file/fs/
   5.516 -		dpkg-deb -x $PACKAGE_FILE $TMP_DIR/$file/fs
   5.517 -		cd $TMP_DIR
   5.518 -		cat > $file/receipt <<EOT
   5.519 -# SliTaz package receipt.
   5.520 -# generated by tazpkg from debian package $(basename $PACKAGE_FILE)
   5.521 -PACKAGE="$package"
   5.522 -VERSION="$version"
   5.523 -CATEGORY="misc"
   5.524 -SHORT_DESC="$descrip"
   5.525 -WEB_SITE="http://packages.debian.org/search?keywords=$package"
   5.526 -MAINTAINER="nobody@slitaz.org"
   5.527 -EOT
   5.528 -		LICENSE="$(grep /usr/share/common-licenses/ \
   5.529 -		  $PACKAGE_FILE $TMP_DIR/$file/fs/usr/share/doc/*/copyright | \
   5.530 -		  sed 's|.*common-licenses/\([-\.A-Za-z0-9]*\).*|\1|;s|[-\.]$||q')"
   5.531 -		[ -n "$LICENSE" ] && echo "LICENSE=\"$LICENSE\"" >> $file/receipt
   5.532 -		echo "DEPENDS=\"$(find_depends)\"" >> $file/receipt
   5.533 -		[ -s conffiles ] && cat >> $file/receipt <<EOT
   5.534 -CONFIG_FILES="$(cat conffiles)"
   5.535 -EOT
   5.536 -		show_unresolved_lib $file/receipt
   5.537 -		awk '
   5.538 -{
   5.539 -   if (/^ / && show) print substr($0,2);
   5.540 -   else show=0;
   5.541 -   if (/^Description/) show=1;
   5.542 -}' < $TMP_DIR/control > $file/description.txt
   5.543 -		sed -i 's/^\.$//' $file/description.txt
   5.544 -		[ -s $file/description.txt ] || rm -f $file/description.txt
   5.545 -		tazpkg pack $file
   5.546 -		mv $file.tazpkg $TOP_DIR
   5.547 -		;;
   5.548 -	*)
   5.549 -		_ 'Invalid target: $target (expected i386)'
   5.550 -		;;
   5.551 -	esac
   5.552 -	cd $TOP_DIR
   5.553 -	rm -rf $TMP_DIR
   5.554 -}
   5.555 -
   5.556 -
   5.557 -# convert a .rpm package to .tazpkg
   5.558 -
   5.559 -convert_rpm()
   5.560 -{
   5.561 -	mkdir -p $TMP_DIR
   5.562 -	cp $PACKAGE_FILE $TMP_DIR
   5.563 -	PACKAGE_FILE=$TMP_DIR/$(basename $PACKAGE_FILE)
   5.564 -	rpm -qip $PACKAGE_FILE | awk -v pkg=$(basename $PACKAGE_FILE) '
   5.565 -BEGIN {
   5.566 -	goturl=0;
   5.567 -	printf "# SliTaz package receipt.\n";
   5.568 -	printf "# generated by tazpkg from rpm package %s\n",pkg;
   5.569 -}
   5.570 -{
   5.571 -	if (/^Name/) { name=$3; printf "PACKAGE=\"%s\"\n",$3; }
   5.572 -	if (/^Version/) printf "VERSION=\"%s-",$3;
   5.573 -	if (/^Release/) printf "%s\"\n",$3;
   5.574 -	if (/^Summary/) printf "SHORT_DESC=\"%s\"\n",substr($0,15);
   5.575 -	if (/^URL/) { goturl=1; printf "WEB_SITE=\"%s\"\n",$3; }
   5.576 -}
   5.577 -END {
   5.578 -	if (goturl == 0)
   5.579 -		printf "WEB_SITE=\"http://rpmfind.net/linux/rpm2html/search.php?query=%s\"\n",name;
   5.580 -	printf "CATEGORY=\"misc\"\n";
   5.581 -	printf "MAINTAINER=\"nobody@slitaz.org\"\n";
   5.582 -}
   5.583 -' > $TMP_DIR/receipt
   5.584 -	. $TMP_DIR/receipt
   5.585 -	file=$PACKAGE-$VERSION
   5.586 -	mkdir -p $TMP_DIR/$file/fs/
   5.587 -	mv $TMP_DIR/receipt $TMP_DIR/$file
   5.588 -	rpm -qip $PACKAGE_FILE | awk '
   5.589 -BEGIN { show=0 }
   5.590 -{
   5.591 -  if (show) print;
   5.592 -  if (/^Description/) show=1;
   5.593 -}
   5.594 -' > $TMP_DIR/$file/description.txt
   5.595 -	cd $TMP_DIR/$file/fs/
   5.596 -	rpm2cpio $PACKAGE_FILE | cpio -idm --quiet
   5.597 -	# rpm2cpio can't extract some new RPMs
   5.598 -	if [ $? == 1 ]; then
   5.599 -		if [ ! -e $INSTALLED/p7zip-full/receipt ]; then
   5.600 -			boldify $(_ 'Unable to extract the RPM using standard tools (rpm2cpio).')
   5.601 -			_n "Do you want to install 'p7zip-full' package"; confirm
   5.602 -			if [ $? = 0 ]; then
   5.603 -				tazpkg -gi p7zip-full
   5.604 -			else
   5.605 -				rm -rf $TMP_DIR
   5.606 -				exit 1
   5.607 -			fi
   5.608 -		fi
   5.609 -		# we may already have 7z or may have just installed it in the step above
   5.610 -		if [ -e $INSTALLED/p7zip-full/receipt ]; then
   5.611 -			7z x -so $PACKAGE_FILE | cpio -idm --quiet
   5.612 -		fi
   5.613 -	fi
   5.614 -	cd ../..
   5.615 -	echo "DEPENDS=\"$(find_depends)\"" >> $TMP_DIR/$file/receipt
   5.616 -	show_unresolved_lib $TMP_DIR/$file/receipt
   5.617 -	tazpkg pack $file
   5.618 -	mv $file.tazpkg $TOP_DIR
   5.619 -	cd $TOP_DIR
   5.620 -	rm -rf $TMP_DIR
   5.621 -}
   5.622 -
   5.623 -
   5.624  update_desktop_database()
   5.625  {
   5.626  	if [ -f $1/usr/bin/update-desktop-database ] && [ -n "$updatedesktopdb" ]; then
   5.627 @@ -3341,37 +2740,8 @@
   5.628  	convert|-c)
   5.629  		# convert misc package format to .tazpkg
   5.630  		check_for_package_file
   5.631 -		[ -n "$TARGET_DIR" -a -s "$TARGET_DIR/files.list.lzma" ] &&
   5.632 -			TMPLOCALSTATE="$TARGET_DIR"
   5.633 -		if [ "$(dd if=$PACKAGE_FILE bs=8 count=1 skip=1 2> /dev/null)" \
   5.634 -		      == "debian-b" ]; then
   5.635 -			convert_deb
   5.636 -		else
   5.637 -			case "$PACKAGE_FILE" in
   5.638 -				*.deb|*.udeb)
   5.639 -					convert_deb;;
   5.640 -				*.rpm)
   5.641 -					convert_rpm;;
   5.642 -				*.sb)
   5.643 -					convert_sb;;
   5.644 -				*.sfs)
   5.645 -					convert_sfs;;
   5.646 -				*.pet)
   5.647 -					convert_pet;;
   5.648 -				*.tgz)
   5.649 -					convert_tgz;;
   5.650 -				*.apk|*.pkg.tar.gz|*.pkg.tar.xz)
   5.651 -					convert_arch;;
   5.652 -				*.ipk|*.opk)
   5.653 -					convert_ipk;;
   5.654 -				*.spack)
   5.655 -					convert_spack;;
   5.656 -				*.tar.bz2)
   5.657 -					convert_upkg;;
   5.658 -				*)
   5.659 -					_ 'Unsupported format' ;;
   5.660 -		esac
   5.661 -		fi ;;
   5.662 +		tazpkg-convert $@
   5.663 +		;;
   5.664  
   5.665  
   5.666  	link)
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/tazpkg-convert	Tue Dec 02 02:22:09 2014 +0200
     6.3 @@ -0,0 +1,589 @@
     6.4 +#!/bin/sh
     6.5 +
     6.6 +# This program is a part of TazPkg.
     6.7 +# /usr/bin/tazpkg-convert: toolset to convert alien package to the tazpkg format
     6.8 +
     6.9 +# Usage: tazpkg-convert alien_package [ target_directory ]
    6.10 +
    6.11 +
    6.12 +PACKAGE_FILE="$1"
    6.13 +TARGET_DIR="$2"
    6.14 +TMP_DIR=$(mktemp -d)
    6.15 +TOP_DIR="$(pwd)"
    6.16 +
    6.17 +. /etc/slitaz/slitaz.conf
    6.18 +. /lib/libtaz.sh
    6.19 +. /usr/lib/tazpkg/tazpkg-find-depends
    6.20 +
    6.21 +# Internationalization.
    6.22 +export TEXTDOMAIN='tazpkg'
    6.23 +
    6.24 +
    6.25 +# FIXME: what does this mean?
    6.26 +[ -n "$TARGET_DIR" -a -s "$TARGET_DIR/files.list.lzma" ] && TMPLOCALSTATE="$TARGET_DIR"
    6.27 +
    6.28 +
    6.29 +show_unresolved_lib()
    6.30 +{
    6.31 +	if [ -s $TMP_DIR/unresolved ]; then
    6.32 +		echo -e "BUGS=\"`gettext \"No dependency for\"`" >> $1
    6.33 +		sort < $TMP_DIR/unresolved | uniq | \
    6.34 +		while read file; do
    6.35 +			_ 'WARNING: unknown dependency for $lib'
    6.36 +			echo -n " $file" >> $1
    6.37 +		done
    6.38 +		echo "\"" >> $1
    6.39 +	fi
    6.40 +}
    6.41 +
    6.42 +
    6.43 +# convert a .tar.bz2 package to .tazpkg
    6.44 +
    6.45 +convert_upkg()
    6.46 +{
    6.47 +	mkdir -p $TMP_DIR/fs
    6.48 +	tar xjf $PACKAGE_FILE -C $TMP_DIR/fs
    6.49 +	if [ -d $TMP_DIR/fs/var/lib/upkg/packages ]; then
    6.50 +		cd $TMP_DIR
    6.51 +		package="$(sed '/^Package:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)"
    6.52 +		version="$(sed '/^Version:/!d;s/.*: //' fs/var/lib/upkg/packages/*.info)"
    6.53 +		url="http://www.paldo.org/"
    6.54 +		file=$package-$version
    6.55 +		mkdir $file
    6.56 +		mv fs $file
    6.57 +		maintainer=nobody@slitaz.org
    6.58 +		descrip="$package package from paldo."
    6.59 +		cat > $file/receipt <<EOT
    6.60 +# SliTaz package receipt.
    6.61 +# generated by tazpkg from package $(basename $PACKAGE_FILE)
    6.62 +PACKAGE="$package"
    6.63 +VERSION="$version"
    6.64 +CATEGORY="misc"
    6.65 +SHORT_DESC="$descrip"
    6.66 +WEB_SITE="$url"
    6.67 +MAINTAINER="$maintainer"
    6.68 +DEPENDS="$(find_depends)"
    6.69 +EOT
    6.70 +		[ -s $file/var/lib/upkg/files/*.config.bz2 ] &&
    6.71 +			cat >> $file/receipt <<EOT
    6.72 +CONFIG_FILES="$(bzcat $file/var/lib/upkg/files/*.config.bz2)"
    6.73 +EOT
    6.74 +		while read ext func ; do
    6.75 +			[ -s $file/fs/var/lib/upkg/scripts/*.$ext ] || continue
    6.76 +			cat >> $file/receipt <<EOT
    6.77 +
    6.78 +$func()
    6.79 +{
    6.80 +$(cat $file/fs/var/lib/upkg/scripts/*.$ext)
    6.81 +}
    6.82 +EOT
    6.83 +		done <<EOT
    6.84 +prerm	pre_remove
    6.85 +EOT
    6.86 +
    6.87 +		tazpkg pack $file
    6.88 +		mv $TMP_DIR/$file.tazpkg $TOP_DIR
    6.89 +	else
    6.90 +		_ '$PACKAGE_FILE does not look like an upkg package!'
    6.91 +	fi
    6.92 +	cd $TOP_DIR
    6.93 +	rm -rf $TMP_DIR
    6.94 +}
    6.95 +
    6.96 +
    6.97 +# convert a .spack package to .tazpkg
    6.98 +
    6.99 +convert_spack()
   6.100 +{
   6.101 +	mkdir -p $TMP_DIR
   6.102 +	( cd $TMP_DIR ; cpio -i ) < $PACKAGE_FILE
   6.103 +	cd $TMP_DIR
   6.104 +	package="$(sed '$!d;s/:.*//' about.txt)"
   6.105 +	version="$(basename $PACKAGE_FILE | sed "s/$package-\([^-]*\).*/\1/")"
   6.106 +	descrip="$(sed '$!d;s/.*: //' about.txt)"
   6.107 +	url="http://0linux.org/"
   6.108 +	maintainer=nobody@slitaz.org
   6.109 +	file=$package-$version
   6.110 +	mkdir -p $file/fs
   6.111 +	xzcat files.xz | ( cd $file/fs ; cpio -idmu )
   6.112 +	cat > $file/receipt <<EOT
   6.113 +# SliTaz package receipt.
   6.114 +# generated by tazpkg from package $(basename $PACKAGE_FILE)
   6.115 +PACKAGE="$package"
   6.116 +VERSION="$version"
   6.117 +CATEGORY="misc"
   6.118 +SHORT_DESC="$descrip"
   6.119 +WEB_SITE="$url"
   6.120 +MAINTAINER="$maintainer"
   6.121 +DEPENDS="$(find_depends)"
   6.122 +EOT
   6.123 +	[ -s pre-install.sh ] && cat >> $file/receipt <<EOT
   6.124 +
   6.125 +pre_install()
   6.126 +{
   6.127 +	cd /
   6.128 +$(sed 1d pre-install.sh)
   6.129 +}
   6.130 +EOT
   6.131 +	[ -s post-install.sh ] && cat >> $file/receipt <<EOT
   6.132 +
   6.133 +post_install()
   6.134 +{
   6.135 +	cd /
   6.136 +$(sed '1,/^}/d' post-install.sh)
   6.137 +}
   6.138 +EOT
   6.139 +	tazpkg pack $file
   6.140 +	cd $TOP_DIR
   6.141 +	mv $TMP_DIR/$file.tazpkg .
   6.142 +	rm -rf $TMP_DIR
   6.143 +}
   6.144 +
   6.145 +
   6.146 +# convert a .ipk package to .tazpkg
   6.147 +
   6.148 +convert_ipk()
   6.149 +{
   6.150 +	mkdir -p $TMP_DIR
   6.151 +	tar xOzf $PACKAGE_FILE ./control.tar.gz | tar xzf - -C $TMP_DIR
   6.152 +	package="$(grep ^Package $TMP_DIR/control | sed 's/.*: //')"
   6.153 +	version="$(grep ^Version $TMP_DIR/control | sed 's/.*: //')"
   6.154 +	maintainer="$(grep ^Maintainer $TMP_DIR/control | sed 's/.*: //')"
   6.155 +	target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')"
   6.156 +	descrip="$(grep ^Description $TMP_DIR/control | sed 's/.*: //')"
   6.157 +	url="http://openwrt.org/"
   6.158 +	case "$target" in
   6.159 +	i386|all)
   6.160 +		file=$package-$version
   6.161 +		mkdir -p $TMP_DIR/$file/fs
   6.162 +		tar xOzf $PACKAGE_FILE ./data.tar.gz | tar xzf - -C $TMP_DIR/$file/fs
   6.163 +		cd $TMP_DIR
   6.164 +		cat > $file/receipt <<EOT
   6.165 +# SliTaz package receipt.
   6.166 +# generated by tazpkg from package $(basename $PACKAGE_FILE)
   6.167 +PACKAGE="$package"
   6.168 +VERSION="$version"
   6.169 +CATEGORY="misc"
   6.170 +SHORT_DESC="$descrip"
   6.171 +WEB_SITE="$url"
   6.172 +MAINTAINER="$maintainer"
   6.173 +DEPENDS="$(find_depends)"
   6.174 +EOT
   6.175 +		show_unresolved_lib $file/receipt
   6.176 +		[ -s conffiles ] && cat >> $file/receipt <<EOT
   6.177 +CONFIG_FILES="$(cat conffiles)"
   6.178 +EOT
   6.179 +		show_unresolved_lib $file/receipt
   6.180 +		while read script func; do
   6.181 +			[ -s $script ] && cat >> $file/receipt <<EOT
   6.182 +
   6.183 +$func()
   6.184 +{
   6.185 +$(cat $script)
   6.186 +}
   6.187 +EOT
   6.188 +		done <<EOT
   6.189 +preinst		pre_install
   6.190 +postinst	post_install
   6.191 +prerm		pre_remove
   6.192 +postrm		post_remove
   6.193 +EOT
   6.194 +		awk '
   6.195 +{
   6.196 +   if (/^ / && show) print substr($0,2);
   6.197 +   else show=0;
   6.198 +   if (/^Description/) show=1;
   6.199 +}' < $TMP_DIR/control > $file/description.txt
   6.200 +		sed -i 's/^\.$//' $file/description.txt
   6.201 +		[ -s $file/description.txt ] || rm -f $file/description.txt
   6.202 +		tazpkg pack $file
   6.203 +		cd $TOP_DIR
   6.204 +		mv $TMP_DIR/$file.tazpkg .
   6.205 +		;;
   6.206 +	*)
   6.207 +		_ 'Invalid target: $target (expected i386)'
   6.208 +		;;
   6.209 +	esac
   6.210 +	rm -rf $TMP_DIR
   6.211 +}
   6.212 +
   6.213 +
   6.214 +# convert a .pkg.tar.gz/.pkg.tar.xz/.apk package to .tazpkg
   6.215 +
   6.216 +convert_arch()
   6.217 +{
   6.218 +	mkdir -p $TMP_DIR/fs
   6.219 +	busybox tar xf $PACKAGE_FILE -C $TMP_DIR/fs
   6.220 +	if [ -f $TMP_DIR/fs/.PKGINFO ]; then
   6.221 +		cd $TMP_DIR
   6.222 +		package="$(grep ^pkgname fs/.PKGINFO | sed 's/.*= //')"
   6.223 +		version="$(grep ^pkgver  fs/.PKGINFO | sed 's/.*= //')"
   6.224 +		descrip="$(grep ^pkgdesc fs/.PKGINFO | sed 's/.*= //')"
   6.225 +		url="$(grep ^url fs/.PKGINFO | sed 's/.*= //')"
   6.226 +		maintainer="$(grep ^packager fs/.PKGINFO | sed 's/.*= //')"
   6.227 +		file=$package-$version
   6.228 +		mkdir $file
   6.229 +		mv fs $file
   6.230 +		cat > $file/receipt <<EOT
   6.231 +# SliTaz package receipt.
   6.232 +# generated by tazpkg from Archlinux package $(basename $PACKAGE_FILE)
   6.233 +PACKAGE="$package"
   6.234 +VERSION="$version"
   6.235 +CATEGORY="misc"
   6.236 +SHORT_DESC="$descrip"
   6.237 +WEB_SITE="$url"
   6.238 +MAINTAINER="$maintainer"
   6.239 +DEPENDS="$(find_depends)"
   6.240 +EOT
   6.241 +		show_unresolved_lib $file/receipt
   6.242 +		rm -f $file/fs/.[A-Z]*
   6.243 +		tazpkg pack $file
   6.244 +		mv $file.tazpkg $TOP_DIR
   6.245 +	else
   6.246 +		_ '$PACKAGE_FILE does not look like an Archlinux/Alpine package!'
   6.247 +	fi
   6.248 +	cd $TOP_DIR
   6.249 +	rm -rf $TMP_DIR
   6.250 +}
   6.251 +
   6.252 +
   6.253 +# get package and version from PACKAGE_FILE
   6.254 +
   6.255 +parse_pkgname()
   6.256 +{
   6.257 +	package=$(basename ${2:-$PACKAGE_FILE} $1)
   6.258 +	IFS='-'
   6.259 +	set -- $package
   6.260 +	unset IFS
   6.261 +	package=$1
   6.262 +	version=$2
   6.263 +	if [ -z "$version" ]; then
   6.264 +		package=${1%%[0-9\.]*}
   6.265 +		version=${1#$package}
   6.266 +	fi
   6.267 +	file="$package-$version"
   6.268 +	mkdir $file
   6.269 +}
   6.270 +
   6.271 +
   6.272 +finish_convert_puppy()
   6.273 +{
   6.274 +	rm -f fs/*.specs
   6.275 +	mv fs $file
   6.276 +	cat > $file/receipt <<EOT
   6.277 +# SliTaz package receipt.
   6.278 +# generated by tazpkg from puppy package $(basename $PACKAGE_FILE)
   6.279 +PACKAGE="$package"
   6.280 +VERSION="$version"
   6.281 +CATEGORY="misc"
   6.282 +SHORT_DESC="$desc"
   6.283 +WEB_SITE="http://puppylinux.org/"
   6.284 +MAINTAINER="nobody@slitaz.org"
   6.285 +DEPENDS="$(find_depends)"
   6.286 +EOT
   6.287 +	show_unresolved_lib $file/receipt
   6.288 +	for i in install uninstall ; do
   6.289 +		[ -f $file/fs/p$i.sh ] && cat >> $file/receipt <<EOM
   6.290 +
   6.291 +post_$i()
   6.292 +{
   6.293 +chroot \$1/ sh - << EOT
   6.294 +cd /
   6.295 +$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/p$i.sh ; rm -f $file/fs/p$i.sh)
   6.296 +EOT
   6.297 +}
   6.298 +EOM
   6.299 +	done
   6.300 +	sed -i 's/post_uninstall/post_remove/' $file/receipt
   6.301 +	tazpkg pack $file
   6.302 +	mv $file.tazpkg $TOP_DIR
   6.303 +	cd $TOP_DIR
   6.304 +	rm -rf $TMP_DIR
   6.305 +}
   6.306 +
   6.307 +
   6.308 +# convert a .sfs package to .tazpkg
   6.309 +
   6.310 +convert_sfs()
   6.311 +{
   6.312 +	[ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs 
   6.313 +	if ! unsquashfs -l $PACKAGE_FILE | grep -q squashfs-root/pet.specs$ ; then
   6.314 +		_ '$PACKAGE_FILE does not look like a Puppy package!'
   6.315 +		return 1
   6.316 +	fi
   6.317 +	mkdir -p $TMP_DIR 
   6.318 +	cd $TMP_DIR
   6.319 +	parse_pkgname .sfs
   6.320 +	unsquashfs $PACKAGE_FILE
   6.321 +	mv squashfs-root fs
   6.322 +	set -- $(cat fs/pet.specs)
   6.323 +	desc="$10"
   6.324 +	finish_convert_puppy
   6.325 +}
   6.326 +
   6.327 +
   6.328 +# convert a .pet package to .tazpkg
   6.329 +
   6.330 +convert_pet()
   6.331 +{
   6.332 +	mkdir -p $TMP_DIR 
   6.333 +	cd $TMP_DIR
   6.334 +	parse_pkgname .pet
   6.335 +	tar xzf $PACKAGE_FILE 2> /dev/null
   6.336 +	. $package*/*.specs
   6.337 +	desc="$PETMENUDESCR"
   6.338 +	mv $package*/ fs
   6.339 +	finish_convert_puppy
   6.340 +}
   6.341 +
   6.342 +
   6.343 +# convert a .sb package to .tazpkg
   6.344 +
   6.345 +convert_sb()
   6.346 +{
   6.347 +	[ -n "$(which unsquashfs)" ] || tazpkg get-install squashfs 
   6.348 +	if ! unsquashfs -l $PACKAGE_FILE | grep -q squashfs-root/var/log/removed_scripts ; then
   6.349 +		_ '$PACKAGE_FILE does not look like a Slax package!'
   6.350 +		return 1
   6.351 +	fi
   6.352 +	mkdir -p $TMP_DIR 
   6.353 +	cd $TMP_DIR
   6.354 +	unsquashfs $PACKAGE_FILE
   6.355 +	mv squashfs-root fs
   6.356 +	parse_pkgname '' $(cat fs/var/log/packages/* | sed '/PACKAGE NAME:/!d;s/.*: *//')
   6.357 +	desc="$(cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,$!d;N;s/.*: //;q')"
   6.358 +	cat fs/var/log/packages/* | sed '/^PACKAGE DESCRIPTION:/,/FILE LIST/!d;s/.*://;/^$/d' > $file/description.txt
   6.359 +	mv fs $file
   6.360 +	cat > $file/receipt <<EOT
   6.361 +# SliTaz package receipt.
   6.362 +# generated by tazpkg from slax package $(basename $PACKAGE_FILE)
   6.363 +PACKAGE="$package"
   6.364 +VERSION="$version"
   6.365 +CATEGORY="misc"
   6.366 +SHORT_DESC="$desc"
   6.367 +WEB_SITE="http://www.slax.org/"
   6.368 +MAINTAINER="nobody@slitaz.org"
   6.369 +DEPENDS="$(find_depends)"
   6.370 +EOT
   6.371 +	show_unresolved_lib $file/receipt
   6.372 +	[ -f $file/fs/var/log/scripts/$package* ] && cat >> $file/receipt <<EOM
   6.373 +
   6.374 +post_install()
   6.375 +{
   6.376 +chroot \$1/ sh - << EOT
   6.377 +cd /
   6.378 +$(cat $file/fs/var/log/scripts/$package* | sed -e 's/\\/\\\\/g' | sed -e 's/\$/\\$/g')
   6.379 +EOT
   6.380 +}
   6.381 +EOM
   6.382 +	tazpkg pack $file
   6.383 +	mv $file.tazpkg $TOP_DIR
   6.384 +	cd $TOP_DIR
   6.385 +	rm -rf $TMP_DIR
   6.386 +}
   6.387 +
   6.388 +
   6.389 +# convert a .tgz package to .tazpkg
   6.390 +
   6.391 +convert_tgz()
   6.392 +{
   6.393 +	parse_pkgname
   6.394 +	mkdir -p $TMP_DIR/$file/fs
   6.395 +	tar xzf $PACKAGE_FILE -C $TMP_DIR/$file/fs
   6.396 +	cd $TMP_DIR
   6.397 +	if [ -d $file/fs/install ]; then
   6.398 +		descrip=$(grep ^$package $file/fs/install/slack-desc | \
   6.399 +			  head -1 | sed 's/.*(\(.*\)).*/\1/')
   6.400 +		cat > $file/receipt <<EOT
   6.401 +# SliTaz package receipt.
   6.402 +# generated by tazpkg from slackware package $(basename $PACKAGE_FILE)
   6.403 +PACKAGE="$package"
   6.404 +VERSION="$version"
   6.405 +CATEGORY="misc"
   6.406 +SHORT_DESC="$descrip"
   6.407 +WEB_SITE="http://www.slackware.com/packages/"
   6.408 +MAINTAINER="nobody@slitaz.org"
   6.409 +DEPENDS="$(find_depends)"
   6.410 +EOT
   6.411 +		show_unresolved_lib $file/receipt
   6.412 +		[ -f $file/fs/install/doinst.sh ] && cat >> $file/receipt <<EOM
   6.413 +
   6.414 +post_install()
   6.415 +{
   6.416 +chroot \$1/ sh - << EOT
   6.417 +cd /
   6.418 +$(sed -e 's/\\/\\\\/g' -e 's/\$/\\$/g' < $file/fs/install/doinst.sh)
   6.419 +EOT
   6.420 +}
   6.421 +EOM
   6.422 +		grep ^$package $file/fs/install/slack-desc | \
   6.423 +			sed "s/^$package://" > $file/description.txt
   6.424 +		[ -s $file/description.txt ] || rm -f $file/description.txt
   6.425 +		rm -rf $file/fs/install
   6.426 +		tazpkg pack $file
   6.427 +		mv $file.tazpkg $TOP_DIR
   6.428 +	else
   6.429 +		_ '$PACKAGE_FILE does not look like a Slackware package!'
   6.430 +	fi
   6.431 +	cd $TOP_DIR
   6.432 +	rm -rf $TMP_DIR
   6.433 +}
   6.434 +
   6.435 +
   6.436 +# convert a .deb package to .tazpkg
   6.437 +
   6.438 +convert_deb()
   6.439 +{
   6.440 +	mkdir -p $TMP_DIR
   6.441 +	dpkg-deb -e $PACKAGE_FILE $TMP_DIR
   6.442 +	package=$(grep '^ *Package:' $TMP_DIR/control)
   6.443 +	package=$(echo ${package##*:})
   6.444 +	version=$(grep '^ *Version:' $TMP_DIR/control)
   6.445 +	version=$(echo ${version##*:})
   6.446 +	descrip=$(grep '^ *Description:' $TMP_DIR/control)
   6.447 +	descrip=$(echo ${descrip##*:})
   6.448 +	target="$(grep ^Architecture $TMP_DIR/control | sed 's/.*: //')"
   6.449 +	case "$target" in
   6.450 +	i386|all)
   6.451 +		file="$package-$version"
   6.452 +		mkdir -p $TMP_DIR/$file/fs/
   6.453 +		dpkg-deb -x $PACKAGE_FILE $TMP_DIR/$file/fs
   6.454 +		cd $TMP_DIR
   6.455 +		cat > $file/receipt <<EOT
   6.456 +# SliTaz package receipt.
   6.457 +# generated by tazpkg from debian package $(basename $PACKAGE_FILE)
   6.458 +PACKAGE="$package"
   6.459 +VERSION="$version"
   6.460 +CATEGORY="misc"
   6.461 +SHORT_DESC="$descrip"
   6.462 +WEB_SITE="http://packages.debian.org/search?keywords=$package"
   6.463 +MAINTAINER="nobody@slitaz.org"
   6.464 +EOT
   6.465 +		LICENSE="$(grep /usr/share/common-licenses/ \
   6.466 +		  $PACKAGE_FILE $TMP_DIR/$file/fs/usr/share/doc/*/copyright | \
   6.467 +		  sed 's|.*common-licenses/\([-\.A-Za-z0-9]*\).*|\1|;s|[-\.]$||q')"
   6.468 +		[ -n "$LICENSE" ] && echo "LICENSE=\"$LICENSE\"" >> $file/receipt
   6.469 +		echo "DEPENDS=\"$(find_depends)\"" >> $file/receipt
   6.470 +		[ -s conffiles ] && cat >> $file/receipt <<EOT
   6.471 +CONFIG_FILES="$(cat conffiles)"
   6.472 +EOT
   6.473 +		show_unresolved_lib $file/receipt
   6.474 +		awk '
   6.475 +{
   6.476 +   if (/^ / && show) print substr($0,2);
   6.477 +   else show=0;
   6.478 +   if (/^Description/) show=1;
   6.479 +}' < $TMP_DIR/control > $file/description.txt
   6.480 +		sed -i 's/^\.$//' $file/description.txt
   6.481 +		[ -s $file/description.txt ] || rm -f $file/description.txt
   6.482 +		tazpkg pack $file
   6.483 +		mv $file.tazpkg $TOP_DIR
   6.484 +		;;
   6.485 +	*)
   6.486 +		_ 'Invalid target: $target (expected i386)'
   6.487 +		;;
   6.488 +	esac
   6.489 +	cd $TOP_DIR
   6.490 +	rm -rf $TMP_DIR
   6.491 +}
   6.492 +
   6.493 +
   6.494 +# convert a .rpm package to .tazpkg
   6.495 +
   6.496 +convert_rpm()
   6.497 +{
   6.498 +	mkdir -p $TMP_DIR
   6.499 +	cp $PACKAGE_FILE $TMP_DIR
   6.500 +	PACKAGE_FILE=$TMP_DIR/$(basename $PACKAGE_FILE)
   6.501 +	rpm -qip $PACKAGE_FILE | awk -v pkg=$(basename $PACKAGE_FILE) '
   6.502 +BEGIN {
   6.503 +	goturl=0;
   6.504 +	printf "# SliTaz package receipt.\n";
   6.505 +	printf "# generated by tazpkg from rpm package %s\n",pkg;
   6.506 +}
   6.507 +{
   6.508 +	if (/^Name/) { name=$3; printf "PACKAGE=\"%s\"\n",$3; }
   6.509 +	if (/^Version/) printf "VERSION=\"%s-",$3;
   6.510 +	if (/^Release/) printf "%s\"\n",$3;
   6.511 +	if (/^Summary/) printf "SHORT_DESC=\"%s\"\n",substr($0,15);
   6.512 +	if (/^URL/) { goturl=1; printf "WEB_SITE=\"%s\"\n",$3; }
   6.513 +}
   6.514 +END {
   6.515 +	if (goturl == 0)
   6.516 +		printf "WEB_SITE=\"http://rpmfind.net/linux/rpm2html/search.php?query=%s\"\n",name;
   6.517 +	printf "CATEGORY=\"misc\"\n";
   6.518 +	printf "MAINTAINER=\"nobody@slitaz.org\"\n";
   6.519 +}
   6.520 +' > $TMP_DIR/receipt
   6.521 +	. $TMP_DIR/receipt
   6.522 +	file=$PACKAGE-$VERSION
   6.523 +	mkdir -p $TMP_DIR/$file/fs/
   6.524 +	mv $TMP_DIR/receipt $TMP_DIR/$file
   6.525 +	rpm -qip $PACKAGE_FILE | awk '
   6.526 +BEGIN { show=0 }
   6.527 +{
   6.528 +  if (show) print;
   6.529 +  if (/^Description/) show=1;
   6.530 +}
   6.531 +' > $TMP_DIR/$file/description.txt
   6.532 +	cd $TMP_DIR/$file/fs/
   6.533 +	rpm2cpio $PACKAGE_FILE | cpio -idm --quiet
   6.534 +	# rpm2cpio can't extract some new RPMs
   6.535 +	if [ $? == 1 ]; then
   6.536 +		if [ ! -e $INSTALLED/p7zip-full/receipt ]; then
   6.537 +			boldify $(_ 'Unable to extract the RPM using standard tools (rpm2cpio).')
   6.538 +			_n "Do you want to install 'p7zip-full' package"; confirm
   6.539 +			if [ $? = 0 ]; then
   6.540 +				tazpkg -gi p7zip-full
   6.541 +			else
   6.542 +				rm -rf $TMP_DIR
   6.543 +				exit 1
   6.544 +			fi
   6.545 +		fi
   6.546 +		# we may already have 7z or may have just installed it in the step above
   6.547 +		if [ -e $INSTALLED/p7zip-full/receipt ]; then
   6.548 +			7z x -so $PACKAGE_FILE | cpio -idm --quiet
   6.549 +		fi
   6.550 +	fi
   6.551 +	cd ../..
   6.552 +	echo "DEPENDS=\"$(find_depends)\"" >> $TMP_DIR/$file/receipt
   6.553 +	show_unresolved_lib $TMP_DIR/$file/receipt
   6.554 +	tazpkg pack $file
   6.555 +	mv $file.tazpkg $TOP_DIR
   6.556 +	cd $TOP_DIR
   6.557 +	rm -rf $TMP_DIR
   6.558 +}
   6.559 +
   6.560 +
   6.561 +
   6.562 +
   6.563 +if [ "$(dd if=$PACKAGE_FILE bs=8 count=1 skip=1 2> /dev/null)"  == "debian-b" ]; then
   6.564 +	convert_deb
   6.565 +else
   6.566 +	case "$PACKAGE_FILE" in
   6.567 +		*.deb|*.udeb)
   6.568 +			convert_deb;;
   6.569 +		*.rpm)
   6.570 +			convert_rpm;;
   6.571 +		*.sb)
   6.572 +			convert_sb;;
   6.573 +		*.sfs)
   6.574 +			convert_sfs;;
   6.575 +		*.pet)
   6.576 +			convert_pet;;
   6.577 +		*.tgz)
   6.578 +			convert_tgz;;
   6.579 +		*.apk|*.pkg.tar.gz|*.pkg.tar.xz)
   6.580 +			convert_arch;;
   6.581 +		*.ipk|*.opk)
   6.582 +			convert_ipk;;
   6.583 +		*.spack)
   6.584 +			convert_spack;;
   6.585 +		*.tar.bz2)
   6.586 +			convert_upkg;;
   6.587 +		*)
   6.588 +			_ 'Unsupported format' ;;
   6.589 +	esac
   6.590 +fi
   6.591 +
   6.592 +exit 0
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/tazpkg-find-depends	Tue Dec 02 02:22:09 2014 +0200
     7.3 @@ -0,0 +1,77 @@
     7.4 +# /usr/lib/tazpkg-find-depends: this program is a part of TazPkg.
     7.5 +# This file contains the functions that are common to tazpkg and tazpkg-convert,
     7.6 +# and sourced by them.
     7.7 +
     7.8 +
     7.9 +# Need by check_depends
    7.10 +TMPLOCALSTATE=
    7.11 +
    7.12 +
    7.13 +# Check for ELF file
    7.14 +
    7.15 +is_elf()
    7.16 +{
    7.17 +	[ "$(dd if=$1 bs=1 skip=1 count=3 2> /dev/null)" = "ELF" ]
    7.18 +}
    7.19 +
    7.20 +
    7.21 +# Print shared library dependencies
    7.22 +
    7.23 +ldd()
    7.24 +{
    7.25 +	LD_TRACE_LOADED_OBJECTS=1 /lib/ld*.so $1 2> /dev/null
    7.26 +}
    7.27 +
    7.28 +
    7.29 +# search dependencies for files in $TMP_DIR/$file/fs
    7.30 +
    7.31 +find_depends()
    7.32 +{
    7.33 +	DEFAULT_DEPENDS="glibc-base gcc-lib-base"
    7.34 +
    7.35 +	[ -n "$TMPLOCALSTATE" ] || TMPLOCALSTATE=$LOCALSTATE
    7.36 +	[ -f $TMPLOCALSTATE/files.list.lzma ] || tazpkg recharge > /dev/null
    7.37 +	for i in $TMPLOCALSTATE/files.list.lzma \
    7.38 +		$TMPLOCALSTATE/undigest/*/files.list.lzma ; do
    7.39 +		[ -f $i ] && lzma d $i -so >> $TMP_DIR/files.list
    7.40 +	done
    7.41 +
    7.42 +	find ${1:-$TMP_DIR/$file/fs} -type f | \
    7.43 +	while read chkfile ; do
    7.44 +		is_elf $chkfile || continue
    7.45 +		case "$chkfile" in
    7.46 +			*.o|*.ko|*.ko.gz) continue;;
    7.47 +		esac
    7.48 +
    7.49 +		ldd $chkfile | \
    7.50 +		while read lib rem; do
    7.51 +			case "$lib" in
    7.52 +				statically|linux-gate.so*|ld-*.so|*/ld-*.so) continue;;
    7.53 +			esac
    7.54 +			find ${1:-$TMP_DIR/$file/fs} | grep -q /$lib$ && continue
    7.55 +
    7.56 +			for dep in $(fgrep $lib files.list | cut -d: -f1); do
    7.57 +				case " $DEFAULT_DEPENDS " in
    7.58 +					*\ $dep\ *) continue 2;;
    7.59 +				esac
    7.60 +				grep -qs "^$dep$" $TMP_DIR/depends && continue 2
    7.61 +			done
    7.62 +
    7.63 +			if [ -n "$dep" ]; then
    7.64 +				echo "$dep" >> $TMP_DIR/depends
    7.65 +			else
    7.66 +				grep -qs ^$lib$ $TMP_DIR/unresolved ||
    7.67 +					echo "$lib" >> $TMP_DIR/unresolved
    7.68 +			fi
    7.69 +		done
    7.70 +	done
    7.71 +
    7.72 +	spc=""
    7.73 +	sort < $TMP_DIR/depends 2> /dev/null | uniq | \
    7.74 +	while read file; do
    7.75 +		echo -n "$spc$file"
    7.76 +		spc=" "
    7.77 +	done
    7.78 +}
    7.79 +
    7.80 +
     8.1 --- a/xdg/autostart/tazpkg-notify.desktop	Mon Dec 01 01:06:57 2014 +0200
     8.2 +++ b/xdg/autostart/tazpkg-notify.desktop	Tue Dec 02 02:22:09 2014 +0200
     8.3 @@ -2,4 +2,5 @@
     8.4  Type=Application
     8.5  Name=Packages Notification System
     8.6  Name[fr]=Notification du système de paquets
     8.7 +Name[ru]=Уведомления менеджера пакетов
     8.8  Exec=tazpkg-notify