tazpkg rev 804
Makefile: make pkgs.cgi executable; tazpkg: fix processing extra.list in the "tazpkg recharge", tiny edits.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Fri May 15 04:33:46 2015 +0300 (2015-05-15) |
parents | f07e0fd1175e |
children | 918bafc87bf6 |
files | Makefile tazpkg |
line diff
1.1 --- a/Makefile Sun May 10 13:33:16 2015 +0300 1.2 +++ b/Makefile Fri May 15 04:33:46 2015 +0300 1.3 @@ -68,11 +68,11 @@ 1.4 cp -a doc/* $(DESTDIR)$(DOCDIR)/tazpkg 1.5 1.6 # TazPanel files 1.7 - install -m 0755 -d $(DESTDIR)/var/www/tazpanel/menu.d 1.8 - cp -a tazpanel/pkgs.cgi $(DESTDIR)/var/www/tazpanel 1.9 - ln -fs ../pkgs.cgi $(DESTDIR)/var/www/tazpanel/menu.d/pkgs 1.10 - install -m 0755 -d $(DESTDIR)/var/www/tazpanel/styles/default 1.11 - cp -a tazpanel/pkgs.css $(DESTDIR)/var/www/tazpanel/styles/default 1.12 + install -m 0755 -d $(DESTDIR)/var/www/tazpanel/menu.d 1.13 + install -m 0755 tazpanel/pkgs.cgi $(DESTDIR)/var/www/tazpanel 1.14 + ln -fs ../pkgs.cgi $(DESTDIR)/var/www/tazpanel/menu.d/pkgs 1.15 + install -m 0755 -d $(DESTDIR)/var/www/tazpanel/styles/default 1.16 + install -m 0644 tazpanel/pkgs.css $(DESTDIR)/var/www/tazpanel/styles/default 1.17 1.18 # The i18n files 1.19 install -m 0755 -d $(DESTDIR)$(PREFIX)/share/locale 1.20 @@ -85,12 +85,12 @@ 1.21 1.22 # Default icons 1.23 install -m 0755 -d $(ICONS)/apps 1.24 - install -m 0644 pixmaps/tazpkg.png $(ICONS)/apps 1.25 - ln -fs tazpkg.png $(ICONS)/apps/TazPkg.png # icon for Yad 1.26 install -m 0755 -d $(ICONS)/actions 1.27 - install -m 0644 pixmaps/tazpkg-up.png $(ICONS)/actions 1.28 install -m 0755 -d $(ICONS)/status 1.29 - install -m 0644 pixmaps/tazpkg-installed.png $(ICONS)/status 1.30 + install -m 0644 pixmaps/tazpkg.png $(ICONS)/apps 1.31 + install -m 0644 pixmaps/tazpkg-up.png $(ICONS)/actions 1.32 + install -m 0644 pixmaps/tazpkg-installed.png $(ICONS)/status 1.33 + ln -fs tazpkg.png $(ICONS)/apps/TazPkg.png # icon for Yad 1.34 1.35 # TazPkg Notify XDG autostart 1.36 mkdir -p $(DESTDIR)/etc/xdg
2.1 --- a/tazpkg Sun May 10 13:33:16 2015 +0300 2.2 +++ b/tazpkg Fri May 15 04:33:46 2015 +0300 2.3 @@ -19,7 +19,7 @@ 2.4 #################### 2.5 2.6 # TazPkg version 2.7 -VERSION=5.3.4 2.8 +VERSION='5.3.4' 2.9 2.10 . /etc/slitaz/slitaz.conf 2.11 . /etc/slitaz/tazpkg.conf 2.12 @@ -44,10 +44,10 @@ 2.13 2.14 # Make array of pre-translated categories 2.15 2.16 -cat_i18n="" 2.17 -for c in "base-system" "x-window" "utilities" "network" "graphics" \ 2.18 - "multimedia" "office" "development" "system-tools" "security" "games" \ 2.19 - "misc" "meta" "non-free"; do 2.20 +cat_i18n='' 2.21 +for c in 'base-system' 'x-window' 'utilities' 'network' 'graphics' \ 2.22 + 'multimedia' 'office' 'development' 'system-tools' 'security' 'games' \ 2.23 + 'misc' 'meta' 'non-free'; do 2.24 cat_i18n="$cat_i18n 2.25 $(gettext "$c") $c" 2.26 done 2.27 @@ -55,8 +55,7 @@ 2.28 2.29 # Translate category names (must be last in line) 2.30 2.31 -translate_category() 2.32 -{ 2.33 +translate_category() { 2.34 sed "s|base-system$|$(_ base-system)|g; s|x-window$|$(_ x-window)|g; 2.35 s|utilities$|$(_ utilities)|g; s|network$|$(_ network)|g; 2.36 s|graphics$|$(_ graphics)|g; s|multimedia$|$(_ multimedia)|g; 2.37 @@ -72,8 +71,7 @@ 2.38 # This also supports custom categories. 2.39 # And now we support spaces in translated categories 2.40 2.41 -reverse_translate_category() 2.42 -{ 2.43 +reverse_translate_category() { 2.44 echo "$cat_i18n" | awk "BEGIN{FS=\" \"}{if (/^$@ /) a=\$2}END{if (a==\"\") a=\"$@\"; print a}" 2.45 } 2.46 2.47 @@ -120,27 +118,28 @@ 2.48 2.49 # Initialize some variables to use words rather than numbers for functions 2.50 # and actions. 2.51 -COMMAND=$1 2.52 -PACKAGE=${2%/} 2.53 + 2.54 +COMMAND="$1" 2.55 +PACKAGE="${2%/}" 2.56 PACKAGE_DIR="$(cd $(dirname $PACKAGE 2>/dev/null) 2>/dev/null; pwd)" 2.57 [ -n "$PACKAGE" ] && PACKAGE_FILE="$PACKAGE_DIR/${PACKAGE##*/}" 2.58 if [ -f "$PACKAGE" ]; then 2.59 # Set pkg basename for install, extract 2.60 - PACKAGE=$(basename $PACKAGE .tazpkg 2>/dev/null) 2.61 + PACKAGE="$(basename $PACKAGE .tazpkg 2>/dev/null)" 2.62 else 2.63 # Pkg name for remove, search and all other cmds 2.64 - PACKAGE=${PACKAGE%.tazpkg} 2.65 + PACKAGE="${PACKAGE%.tazpkg}" 2.66 fi 2.67 -TARGET_DIR=$3 2.68 -TOP_DIR=$(pwd) 2.69 -TMP_DIR=/tmp/$RANDOM 2.70 -INSTALL_LIST="" 2.71 +TARGET_DIR="$3" 2.72 +TOP_DIR="$(pwd)" 2.73 +TMP_DIR="/tmp/$RANDOM" 2.74 +INSTALL_LIST='' 2.75 SAVE_CACHE_DIR="$CACHE_DIR" 2.76 2.77 # Path to tazpkg used dir and configuration files 2.78 -MIRROR=$PKGS_DB/mirror 2.79 -BLOCKED=$PKGS_DB/blocked-packages.list 2.80 -UP_LIST=$PKGS_DB/packages.up 2.81 +MIRROR="$PKGS_DB/mirror" 2.82 +BLOCKED="$PKGS_DB/blocked-packages.list" 2.83 +UP_LIST="$PKGS_DB/packages.up" 2.84 DEFAULT_MIRROR="$ONLINE_PKGS" 2.85 2.86 2.87 @@ -262,7 +261,7 @@ 2.88 # If not and user is root we create them. 2.89 2.90 check_base_dir() { 2.91 - if [ "$(id -u)" = "0" ]; then 2.92 + if [ "$(id -u)" == "0" ]; then 2.93 check_dir $1$CACHE_DIR 2.94 check_dir $1$INSTALLED 2.95 check_dir $1$SLITAZ_LOGS 2.96 @@ -312,24 +311,23 @@ 2.97 2.98 2.99 # Get repositories priority using $PKGS_DB/priority. 2.100 -# In this files, undigest are called by their name and main mirror 2.101 -# by main. Sort order: priority 2.102 +# In this file undigest repos are called by their names and main mirror 2.103 +# by 'main'. Sort order: priority 2.104 2.105 look_for_priority() { 2.106 - [ -s $PKGS_DB/priority ] && priority=$(cat $PKGS_DB/priority) 2.107 + [ -s "$PKGS_DB/priority" ] && priority=$(cat $PKGS_DB/priority) 2.108 + 2.109 for rep in main $(ls $PKGS_DB/undigest 2>/dev/null); do 2.110 - if [ ! -s $PKGS_DB/priority ] || \ 2.111 - ! grep -q ^$rep$ $PKGS_DB/priority; then 2.112 + if [ ! -s "$PKGS_DB/priority" ] || ! grep -q ^$rep$ $PKGS_DB/priority; then 2.113 priority=$(echo -e "$priority\n$rep") 2.114 fi 2.115 done 2.116 priority=$(echo "$priority" | sed '/^$/d' | \ 2.117 while read line; do 2.118 - if [ "$line" = main ]; then 2.119 - echo $PKGS_DB 2.120 - else 2.121 - echo $PKGS_DB/undigest/$line 2.122 - fi 2.123 + case $line in 2.124 + main) echo $PKGS_DB;; 2.125 + *) echo $PKGS_DB/undigest/$line;; 2.126 + esac 2.127 done) 2.128 } 2.129 2.130 @@ -337,10 +335,10 @@ 2.131 # Get package name in a directory 2.132 2.133 package_fullname_in_dir() { 2.134 - [ -f $1/receipt ] || return 2.135 - EXTRAVERSION="" 2.136 + [ ! -f "$1/receipt" ] && return 2.137 + EXTRAVERSION='' 2.138 . $1/receipt 2.139 - echo $PACKAGE-$VERSION$EXTRAVERSION 2.140 + echo "$PACKAGE-$VERSION$EXTRAVERSION" 2.141 } 2.142 2.143 2.144 @@ -348,9 +346,9 @@ 2.145 2.146 get_installed_package_pathname() { 2.147 for i in $2$INSTALLED/${1%%-*}*; do 2.148 - [ -d $i ] || continue 2.149 - if [ "$1" = "$(package_fullname_in_dir $i)" ]; then 2.150 - echo $i 2.151 + [ ! -d $i ] && continue 2.152 + if [ "$1" == "$(package_fullname_in_dir $i)" ]; then 2.153 + echo "$i" 2.154 return 2.155 fi 2.156 done 2.157 @@ -375,7 +373,7 @@ 2.158 check_for_packages_list() { 2.159 list_path="$PKGS_DB/packages.list" 2.160 if [ ! -f "$list_path" ]; then 2.161 - if test $(id -u) = 0 ; then 2.162 + if [ $(id -u) == 0 ]; then 2.163 tazpkg recharge 2.164 else 2.165 newline 2.166 @@ -418,15 +416,15 @@ 2.167 2.168 get_cache_dir() { 2.169 echo $rep > $tmp/rep 2.170 - if [ "$rep" = "$PKGS_DB" ]; then 2.171 + if [ "$rep" == "$PKGS_DB" ]; then 2.172 CACHE_DIR="$SAVE_CACHE_DIR/$SLITAZ_RELEASE/packages" 2.173 - elif [ "${rep%-incoming}" = "$rep" ]; then 2.174 + elif [ "${rep%-incoming}" == "$rep" ]; then 2.175 CACHE_DIR="$SAVE_CACHE_DIR/${rep##*/}/packages" 2.176 else 2.177 rep="${rep%-incoming}" 2.178 CACHE_DIR="$SAVE_CACHE_DIR/${rep##*/}/packages-incoming" 2.179 fi 2.180 - [ -d "$CACHE_DIR" ] || mkdir -p $CACHE_DIR 2.181 + [ ! -d "$CACHE_DIR" ] && mkdir -p $CACHE_DIR 2.182 echo $CACHE_DIR > $tmp/cachedir 2.183 } 2.184 2.185 @@ -439,22 +437,22 @@ 2.186 if echo $i | fgrep -q : ; then 2.187 # format 'alternative:newname' 2.188 # if alternative is installed then substitute newname 2.189 - if [ -f $2$INSTALLED/${i%:*}/receipt ]; then 2.190 + if [ -f "$2$INSTALLED/${i%:*}/receipt" ]; then 2.191 # substitute package dependency 2.192 - echo ${i#*:} 2.193 + echo "${i#*:}" 2.194 return 2.195 fi 2.196 else 2.197 # if alternative is installed then nothing to install 2.198 - if [ -f $2$INSTALLED/$i/receipt ]; then 2.199 + if [ -f "$2$INSTALLED/$i/receipt" ]; then 2.200 # substitute installed package 2.201 - echo $i 2.202 + echo "$i" 2.203 return 2.204 fi 2.205 fi 2.206 done 2.207 # if not found in packages.equiv then no substitution 2.208 - echo $1 2.209 + echo "$1" 2.210 } 2.211 2.212 2.213 @@ -462,19 +460,19 @@ 2.214 2.215 virtual_pkg() { 2.216 for i in $(for rep in $priority; do 2.217 - grep -hs "^$1=" $rep/packages.equiv 2.218 + grep -hs "^$1=" $rep/packages.equiv 2.219 done | sed "s/^$1=//"); do 2.220 if echo $i | fgrep -q : ; then 2.221 # format 'alternative:newname' 2.222 # if alternative is installed then substitute newname 2.223 - if [ -f $2$INSTALLED/${i%:*}/receipt ]; then 2.224 + if [ -f "$2$INSTALLED/${i%:*}/receipt" ]; then 2.225 # substitute package dependency 2.226 - echo ${i#*:} 2.227 + echo "${i#*:}" 2.228 return 2.229 fi 2.230 else 2.231 # unconditional substitution 2.232 - echo $i 2.233 + echo "$i" 2.234 return 2.235 fi 2.236 done 2.237 @@ -487,26 +485,26 @@ 2.238 local pkg 2.239 for rep in $priority; do 2.240 pkg=$(grep -A 1 -sh "^$1$" $rep/packages.txt | tail -1 | sed 's/^ *//') 2.241 - [ "$pkg" ] && pkg=$(grep -sh "^$1-$pkg" $rep/packages.list | head -1) 2.242 + [ -n "$pkg" ] && pkg=$(grep -sh "^$1-$pkg" $rep/packages.list | head -1) 2.243 2.244 # Allow user to call a package with his version number. 2.245 - [ "$pkg" ] || pkg=$(grep -sh "^$1$" $rep/packages.list | head -1) 2.246 - 2.247 - [ "$pkg" ] || pkg=$(grep -sh "^$1-[0-9]" $rep/packages.list | head -1) 2.248 - [ "$pkg" ] || pkg=$(grep -sh "^$1-.[\.0-9]" $rep/packages.list | head -1) 2.249 - [ "$pkg" ] && get_cache_dir && break 2.250 + [ -n "$pkg" ] || pkg=$(grep -sh "^$1$" $rep/packages.list | head -1) 2.251 + 2.252 + [ -n "$pkg" ] || pkg=$(grep -sh "^$1-[0-9]" $rep/packages.list | head -1) 2.253 + [ -n "$pkg" ] || pkg=$(grep -sh "^$1-.[\.0-9]" $rep/packages.list | head -1) 2.254 + [ -n "$pkg" ] && get_cache_dir && break 2.255 done 2.256 if [ -z "$pkg" ]; then 2.257 # Check for virtual package 2.258 local equiv 2.259 equiv=$(virtual_pkg $1) 2.260 if [ "$equiv" != "$1" ]; then 2.261 - PACKAGE=$equiv 2.262 + PACKAGE="$equiv" 2.263 get_package_filename $PACKAGE 2.264 return 2.265 fi 2.266 fi 2.267 - echo $pkg 2.268 + echo "$pkg" 2.269 } 2.270 2.271 2.272 @@ -518,10 +516,10 @@ 2.273 local check_only 2.274 check_only="$1" 2.275 filename=$(get_package_filename $PACKAGE) 2.276 - if [ "$filename" ]; then 2.277 - PACKAGE=$filename 2.278 - CACHE_DIR=$(cat $tmp/cachedir) 2.279 - rep=$(cat $tmp/rep) 2.280 + if [ -n "$filename" ]; then 2.281 + PACKAGE="$filename" 2.282 + CACHE_DIR="$(cat $tmp/cachedir)" 2.283 + rep="$(cat $tmp/rep)" 2.284 rm -f $tmp/rep $tmp/cachedir 2.285 else 2.286 newline 2.287 @@ -539,12 +537,12 @@ 2.288 log_pkg() { 2.289 local extra 2.290 2.291 - [ "$1" = "Installed" ] && \ 2.292 + [ "$1" == 'Installed' ] && \ 2.293 extra=" - $(fgrep $PACKAGE-$VERSION $PKGS_DB/installed.$SUM | awk '{ print $1 }')" 2.294 2.295 - [ -e $LOG ] || touch $LOG 2.296 - 2.297 - [ -w $LOG ] && 2.298 + [ -e "$LOG" ] || touch $LOG 2.299 + 2.300 + [ -w "$LOG" ] && 2.301 echo "$(date +'%F %T') - $1 - $PACKAGE ($VERSION$EXTRAVERSION)$extra" >> $LOG 2.302 } 2.303 2.304 @@ -552,13 +550,13 @@ 2.305 # Download a get-package script from this mirror 2.306 2.307 download_get_script() { 2.308 - local p 2.309 + local p i 2.310 for p in $priority ; do 2.311 - local i 2.312 for i in $(cat $p/mirror) ; do 2.313 case "$i" in 2.314 - http://*|ftp://*) 2.315 - wget -O $2 ${i%packages/*}packages/get/$1 && return 0 ;; 2.316 + http://*|https://*|ftp://*) 2.317 + busybox wget -q -T 30 -U TazPkg -O $2 \ 2.318 + ${i%packages/*}packages/get/$1 && return 0 ;; 2.319 esac 2.320 done 2.321 done 2.322 @@ -2249,6 +2247,7 @@ 2.323 rm IDs.bak ID.bak 2.324 continue 2.325 fi 2.326 + rm IDs.bak ID.bak 2>/dev/null 2.327 2.328 title 'Recharging repository "%s"' "$repo_name" 2.329 [ -e 'IDs' ] && _ 'Database timestamp: %s' "$(date -d "@$(awk '{print $2}' IDs)" "+%x %R")" 2.330 @@ -2308,8 +2307,10 @@ 2.331 rm packages.list.bak 2.332 if [ -f 'extra.list.bak' ]; then 2.333 if [ -f 'extra.list' ]; then 2.334 - diff -u extra.list.bak extra.list | grep ^+[a-z] >> packages.diff 2.335 - rm extra.list.bak 2.336 + awk -F'|' '{print $1 " (extra)"}' extra.list > extra.list1 2.337 + awk -F'|' '{print $1 " (extra)"}' extra.list.bak > extra.list1.bak 2.338 + diff -u extra.list1.bak extra.list1 | grep ^+[a-z] >> packages.diff 2.339 + rm extra.list.bak extra.list1 extra.list1.bak 2.340 else 2.341 mv extra.list.bak extra.list 2.342 fi 2.343 @@ -2354,15 +2355,15 @@ 2.344 --check|-c) install="n" ;; 2.345 esac 2.346 done 2.347 - time=$(date +%s) 2.348 + time="$(date +%s)" 2.349 2.350 look_for_priority 2.351 for repo in $priority; do 2.352 - pkg_list=$repo/packages.list 2.353 + pkg_list="$repo/packages.list" 2.354 mtime=$(find $pkg_list -mtime +7) 2.355 - if [ "$mtime" ]; then 2.356 + if [ -n "$mtime" ]; then 2.357 if [ "$repo" == "$PKGS_DB" ]; then 2.358 - repo_name=main 2.359 + repo_name='main' 2.360 else 2.361 repo_name="${repo##*/}" 2.362 fi 2.363 @@ -2376,18 +2377,18 @@ 2.364 cd $INSTALLED 2.365 echo -n > $UP_LIST 2.366 blocked_count=0 2.367 - installed_sum=$PKGS_DB/installed.$SUM 2.368 + installed_sum="$PKGS_DB/installed.$SUM" 2.369 2.370 for pkg in *; do 2.371 [ ! -d $pkg ] && continue 2.372 unset VERSION EXTRAVERSION 2.373 . $pkg/receipt 2.374 - md5=$(fgrep " $PACKAGE-${VERSION}$EXTRAVERSION.tazpkg" \ 2.375 + md5=$(fgrep " $PACKAGE-$VERSION$EXTRAVERSION.tazpkg" \ 2.376 $installed_sum | awk '{print $1}') 2.377 for repo in $priority; do 2.378 - pkg_desc=$repo/packages.desc 2.379 - pkg_list=$repo/packages.list 2.380 - pkg_sum=$repo/packages.$SUM 2.381 + pkg_desc="$repo/packages.desc" 2.382 + pkg_list="$repo/packages.list" 2.383 + pkg_sum="$repo/packages.$SUM" 2.384 2.385 if ! fgrep -q "$md5 $PACKAGE-" $pkg_sum; then 2.386 # Jump to next repository in priority if pkg doesn't exist 2.387 @@ -2441,10 +2442,11 @@ 2.388 $upnb "$blocked")" 2.389 newline 2.390 fi 2.391 + 2.392 # Pkgs to upgrade ? Skip, let install them all or ask user 2.393 - [ "$install" == "n" ] && exit 0 2.394 + [ "$install" == 'n' ] && exit 0 2.395 if [ "$upnb" -gt 0 ]; then 2.396 - if [ "$install" == "y" ]; then 2.397 + if [ "$install" == 'y' ]; then 2.398 answer=0 2.399 else 2.400 confirm "$(_ 'Do you wish to install them now? (y/N)')" 2.401 @@ -2472,11 +2474,13 @@ 2.402 cd $INSTALLED 2.403 shift 2.404 LIST=$@ 2.405 - [ -n "$LIST" ] || LIST=$(ls) 2.406 + [ -z "$LIST" ] && LIST=$(ls) 2.407 MSG=$(_n 'No known bugs.') 2.408 + 2.409 + title 'Known bugs in packages' 2.410 for PACKAGE in $LIST; do 2.411 - BUGS="" 2.412 - EXTRAVERSION="" 2.413 + BUGS='' 2.414 + EXTRAVERSION='' 2.415 . $PACKAGE/receipt 2.416 if [ -n "$BUGS" ]; then 2.417 MSG=$(_n 'Bug list completed') 2.418 @@ -2487,7 +2491,7 @@ 2.419 EOT 2.420 fi 2.421 done 2.422 - echo "$MSG" ;; 2.423 + footer "$MSG" ;; 2.424 2.425 2.426 check)