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