tazpkg diff 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 |
line diff
1.1 --- a/tazpkg Sun May 10 13:33:16 2015 +0300 1.2 +++ b/tazpkg Fri May 15 04:33:46 2015 +0300 1.3 @@ -19,7 +19,7 @@ 1.4 #################### 1.5 1.6 # TazPkg version 1.7 -VERSION=5.3.4 1.8 +VERSION='5.3.4' 1.9 1.10 . /etc/slitaz/slitaz.conf 1.11 . /etc/slitaz/tazpkg.conf 1.12 @@ -44,10 +44,10 @@ 1.13 1.14 # Make array of pre-translated categories 1.15 1.16 -cat_i18n="" 1.17 -for c in "base-system" "x-window" "utilities" "network" "graphics" \ 1.18 - "multimedia" "office" "development" "system-tools" "security" "games" \ 1.19 - "misc" "meta" "non-free"; do 1.20 +cat_i18n='' 1.21 +for c in 'base-system' 'x-window' 'utilities' 'network' 'graphics' \ 1.22 + 'multimedia' 'office' 'development' 'system-tools' 'security' 'games' \ 1.23 + 'misc' 'meta' 'non-free'; do 1.24 cat_i18n="$cat_i18n 1.25 $(gettext "$c") $c" 1.26 done 1.27 @@ -55,8 +55,7 @@ 1.28 1.29 # Translate category names (must be last in line) 1.30 1.31 -translate_category() 1.32 -{ 1.33 +translate_category() { 1.34 sed "s|base-system$|$(_ base-system)|g; s|x-window$|$(_ x-window)|g; 1.35 s|utilities$|$(_ utilities)|g; s|network$|$(_ network)|g; 1.36 s|graphics$|$(_ graphics)|g; s|multimedia$|$(_ multimedia)|g; 1.37 @@ -72,8 +71,7 @@ 1.38 # This also supports custom categories. 1.39 # And now we support spaces in translated categories 1.40 1.41 -reverse_translate_category() 1.42 -{ 1.43 +reverse_translate_category() { 1.44 echo "$cat_i18n" | awk "BEGIN{FS=\" \"}{if (/^$@ /) a=\$2}END{if (a==\"\") a=\"$@\"; print a}" 1.45 } 1.46 1.47 @@ -120,27 +118,28 @@ 1.48 1.49 # Initialize some variables to use words rather than numbers for functions 1.50 # and actions. 1.51 -COMMAND=$1 1.52 -PACKAGE=${2%/} 1.53 + 1.54 +COMMAND="$1" 1.55 +PACKAGE="${2%/}" 1.56 PACKAGE_DIR="$(cd $(dirname $PACKAGE 2>/dev/null) 2>/dev/null; pwd)" 1.57 [ -n "$PACKAGE" ] && PACKAGE_FILE="$PACKAGE_DIR/${PACKAGE##*/}" 1.58 if [ -f "$PACKAGE" ]; then 1.59 # Set pkg basename for install, extract 1.60 - PACKAGE=$(basename $PACKAGE .tazpkg 2>/dev/null) 1.61 + PACKAGE="$(basename $PACKAGE .tazpkg 2>/dev/null)" 1.62 else 1.63 # Pkg name for remove, search and all other cmds 1.64 - PACKAGE=${PACKAGE%.tazpkg} 1.65 + PACKAGE="${PACKAGE%.tazpkg}" 1.66 fi 1.67 -TARGET_DIR=$3 1.68 -TOP_DIR=$(pwd) 1.69 -TMP_DIR=/tmp/$RANDOM 1.70 -INSTALL_LIST="" 1.71 +TARGET_DIR="$3" 1.72 +TOP_DIR="$(pwd)" 1.73 +TMP_DIR="/tmp/$RANDOM" 1.74 +INSTALL_LIST='' 1.75 SAVE_CACHE_DIR="$CACHE_DIR" 1.76 1.77 # Path to tazpkg used dir and configuration files 1.78 -MIRROR=$PKGS_DB/mirror 1.79 -BLOCKED=$PKGS_DB/blocked-packages.list 1.80 -UP_LIST=$PKGS_DB/packages.up 1.81 +MIRROR="$PKGS_DB/mirror" 1.82 +BLOCKED="$PKGS_DB/blocked-packages.list" 1.83 +UP_LIST="$PKGS_DB/packages.up" 1.84 DEFAULT_MIRROR="$ONLINE_PKGS" 1.85 1.86 1.87 @@ -262,7 +261,7 @@ 1.88 # If not and user is root we create them. 1.89 1.90 check_base_dir() { 1.91 - if [ "$(id -u)" = "0" ]; then 1.92 + if [ "$(id -u)" == "0" ]; then 1.93 check_dir $1$CACHE_DIR 1.94 check_dir $1$INSTALLED 1.95 check_dir $1$SLITAZ_LOGS 1.96 @@ -312,24 +311,23 @@ 1.97 1.98 1.99 # Get repositories priority using $PKGS_DB/priority. 1.100 -# In this files, undigest are called by their name and main mirror 1.101 -# by main. Sort order: priority 1.102 +# In this file undigest repos are called by their names and main mirror 1.103 +# by 'main'. Sort order: priority 1.104 1.105 look_for_priority() { 1.106 - [ -s $PKGS_DB/priority ] && priority=$(cat $PKGS_DB/priority) 1.107 + [ -s "$PKGS_DB/priority" ] && priority=$(cat $PKGS_DB/priority) 1.108 + 1.109 for rep in main $(ls $PKGS_DB/undigest 2>/dev/null); do 1.110 - if [ ! -s $PKGS_DB/priority ] || \ 1.111 - ! grep -q ^$rep$ $PKGS_DB/priority; then 1.112 + if [ ! -s "$PKGS_DB/priority" ] || ! grep -q ^$rep$ $PKGS_DB/priority; then 1.113 priority=$(echo -e "$priority\n$rep") 1.114 fi 1.115 done 1.116 priority=$(echo "$priority" | sed '/^$/d' | \ 1.117 while read line; do 1.118 - if [ "$line" = main ]; then 1.119 - echo $PKGS_DB 1.120 - else 1.121 - echo $PKGS_DB/undigest/$line 1.122 - fi 1.123 + case $line in 1.124 + main) echo $PKGS_DB;; 1.125 + *) echo $PKGS_DB/undigest/$line;; 1.126 + esac 1.127 done) 1.128 } 1.129 1.130 @@ -337,10 +335,10 @@ 1.131 # Get package name in a directory 1.132 1.133 package_fullname_in_dir() { 1.134 - [ -f $1/receipt ] || return 1.135 - EXTRAVERSION="" 1.136 + [ ! -f "$1/receipt" ] && return 1.137 + EXTRAVERSION='' 1.138 . $1/receipt 1.139 - echo $PACKAGE-$VERSION$EXTRAVERSION 1.140 + echo "$PACKAGE-$VERSION$EXTRAVERSION" 1.141 } 1.142 1.143 1.144 @@ -348,9 +346,9 @@ 1.145 1.146 get_installed_package_pathname() { 1.147 for i in $2$INSTALLED/${1%%-*}*; do 1.148 - [ -d $i ] || continue 1.149 - if [ "$1" = "$(package_fullname_in_dir $i)" ]; then 1.150 - echo $i 1.151 + [ ! -d $i ] && continue 1.152 + if [ "$1" == "$(package_fullname_in_dir $i)" ]; then 1.153 + echo "$i" 1.154 return 1.155 fi 1.156 done 1.157 @@ -375,7 +373,7 @@ 1.158 check_for_packages_list() { 1.159 list_path="$PKGS_DB/packages.list" 1.160 if [ ! -f "$list_path" ]; then 1.161 - if test $(id -u) = 0 ; then 1.162 + if [ $(id -u) == 0 ]; then 1.163 tazpkg recharge 1.164 else 1.165 newline 1.166 @@ -418,15 +416,15 @@ 1.167 1.168 get_cache_dir() { 1.169 echo $rep > $tmp/rep 1.170 - if [ "$rep" = "$PKGS_DB" ]; then 1.171 + if [ "$rep" == "$PKGS_DB" ]; then 1.172 CACHE_DIR="$SAVE_CACHE_DIR/$SLITAZ_RELEASE/packages" 1.173 - elif [ "${rep%-incoming}" = "$rep" ]; then 1.174 + elif [ "${rep%-incoming}" == "$rep" ]; then 1.175 CACHE_DIR="$SAVE_CACHE_DIR/${rep##*/}/packages" 1.176 else 1.177 rep="${rep%-incoming}" 1.178 CACHE_DIR="$SAVE_CACHE_DIR/${rep##*/}/packages-incoming" 1.179 fi 1.180 - [ -d "$CACHE_DIR" ] || mkdir -p $CACHE_DIR 1.181 + [ ! -d "$CACHE_DIR" ] && mkdir -p $CACHE_DIR 1.182 echo $CACHE_DIR > $tmp/cachedir 1.183 } 1.184 1.185 @@ -439,22 +437,22 @@ 1.186 if echo $i | fgrep -q : ; then 1.187 # format 'alternative:newname' 1.188 # if alternative is installed then substitute newname 1.189 - if [ -f $2$INSTALLED/${i%:*}/receipt ]; then 1.190 + if [ -f "$2$INSTALLED/${i%:*}/receipt" ]; then 1.191 # substitute package dependency 1.192 - echo ${i#*:} 1.193 + echo "${i#*:}" 1.194 return 1.195 fi 1.196 else 1.197 # if alternative is installed then nothing to install 1.198 - if [ -f $2$INSTALLED/$i/receipt ]; then 1.199 + if [ -f "$2$INSTALLED/$i/receipt" ]; then 1.200 # substitute installed package 1.201 - echo $i 1.202 + echo "$i" 1.203 return 1.204 fi 1.205 fi 1.206 done 1.207 # if not found in packages.equiv then no substitution 1.208 - echo $1 1.209 + echo "$1" 1.210 } 1.211 1.212 1.213 @@ -462,19 +460,19 @@ 1.214 1.215 virtual_pkg() { 1.216 for i in $(for rep in $priority; do 1.217 - grep -hs "^$1=" $rep/packages.equiv 1.218 + grep -hs "^$1=" $rep/packages.equiv 1.219 done | sed "s/^$1=//"); do 1.220 if echo $i | fgrep -q : ; then 1.221 # format 'alternative:newname' 1.222 # if alternative is installed then substitute newname 1.223 - if [ -f $2$INSTALLED/${i%:*}/receipt ]; then 1.224 + if [ -f "$2$INSTALLED/${i%:*}/receipt" ]; then 1.225 # substitute package dependency 1.226 - echo ${i#*:} 1.227 + echo "${i#*:}" 1.228 return 1.229 fi 1.230 else 1.231 # unconditional substitution 1.232 - echo $i 1.233 + echo "$i" 1.234 return 1.235 fi 1.236 done 1.237 @@ -487,26 +485,26 @@ 1.238 local pkg 1.239 for rep in $priority; do 1.240 pkg=$(grep -A 1 -sh "^$1$" $rep/packages.txt | tail -1 | sed 's/^ *//') 1.241 - [ "$pkg" ] && pkg=$(grep -sh "^$1-$pkg" $rep/packages.list | head -1) 1.242 + [ -n "$pkg" ] && pkg=$(grep -sh "^$1-$pkg" $rep/packages.list | head -1) 1.243 1.244 # Allow user to call a package with his version number. 1.245 - [ "$pkg" ] || pkg=$(grep -sh "^$1$" $rep/packages.list | head -1) 1.246 - 1.247 - [ "$pkg" ] || pkg=$(grep -sh "^$1-[0-9]" $rep/packages.list | head -1) 1.248 - [ "$pkg" ] || pkg=$(grep -sh "^$1-.[\.0-9]" $rep/packages.list | head -1) 1.249 - [ "$pkg" ] && get_cache_dir && break 1.250 + [ -n "$pkg" ] || pkg=$(grep -sh "^$1$" $rep/packages.list | head -1) 1.251 + 1.252 + [ -n "$pkg" ] || pkg=$(grep -sh "^$1-[0-9]" $rep/packages.list | head -1) 1.253 + [ -n "$pkg" ] || pkg=$(grep -sh "^$1-.[\.0-9]" $rep/packages.list | head -1) 1.254 + [ -n "$pkg" ] && get_cache_dir && break 1.255 done 1.256 if [ -z "$pkg" ]; then 1.257 # Check for virtual package 1.258 local equiv 1.259 equiv=$(virtual_pkg $1) 1.260 if [ "$equiv" != "$1" ]; then 1.261 - PACKAGE=$equiv 1.262 + PACKAGE="$equiv" 1.263 get_package_filename $PACKAGE 1.264 return 1.265 fi 1.266 fi 1.267 - echo $pkg 1.268 + echo "$pkg" 1.269 } 1.270 1.271 1.272 @@ -518,10 +516,10 @@ 1.273 local check_only 1.274 check_only="$1" 1.275 filename=$(get_package_filename $PACKAGE) 1.276 - if [ "$filename" ]; then 1.277 - PACKAGE=$filename 1.278 - CACHE_DIR=$(cat $tmp/cachedir) 1.279 - rep=$(cat $tmp/rep) 1.280 + if [ -n "$filename" ]; then 1.281 + PACKAGE="$filename" 1.282 + CACHE_DIR="$(cat $tmp/cachedir)" 1.283 + rep="$(cat $tmp/rep)" 1.284 rm -f $tmp/rep $tmp/cachedir 1.285 else 1.286 newline 1.287 @@ -539,12 +537,12 @@ 1.288 log_pkg() { 1.289 local extra 1.290 1.291 - [ "$1" = "Installed" ] && \ 1.292 + [ "$1" == 'Installed' ] && \ 1.293 extra=" - $(fgrep $PACKAGE-$VERSION $PKGS_DB/installed.$SUM | awk '{ print $1 }')" 1.294 1.295 - [ -e $LOG ] || touch $LOG 1.296 - 1.297 - [ -w $LOG ] && 1.298 + [ -e "$LOG" ] || touch $LOG 1.299 + 1.300 + [ -w "$LOG" ] && 1.301 echo "$(date +'%F %T') - $1 - $PACKAGE ($VERSION$EXTRAVERSION)$extra" >> $LOG 1.302 } 1.303 1.304 @@ -552,13 +550,13 @@ 1.305 # Download a get-package script from this mirror 1.306 1.307 download_get_script() { 1.308 - local p 1.309 + local p i 1.310 for p in $priority ; do 1.311 - local i 1.312 for i in $(cat $p/mirror) ; do 1.313 case "$i" in 1.314 - http://*|ftp://*) 1.315 - wget -O $2 ${i%packages/*}packages/get/$1 && return 0 ;; 1.316 + http://*|https://*|ftp://*) 1.317 + busybox wget -q -T 30 -U TazPkg -O $2 \ 1.318 + ${i%packages/*}packages/get/$1 && return 0 ;; 1.319 esac 1.320 done 1.321 done 1.322 @@ -2249,6 +2247,7 @@ 1.323 rm IDs.bak ID.bak 1.324 continue 1.325 fi 1.326 + rm IDs.bak ID.bak 2>/dev/null 1.327 1.328 title 'Recharging repository "%s"' "$repo_name" 1.329 [ -e 'IDs' ] && _ 'Database timestamp: %s' "$(date -d "@$(awk '{print $2}' IDs)" "+%x %R")" 1.330 @@ -2308,8 +2307,10 @@ 1.331 rm packages.list.bak 1.332 if [ -f 'extra.list.bak' ]; then 1.333 if [ -f 'extra.list' ]; then 1.334 - diff -u extra.list.bak extra.list | grep ^+[a-z] >> packages.diff 1.335 - rm extra.list.bak 1.336 + awk -F'|' '{print $1 " (extra)"}' extra.list > extra.list1 1.337 + awk -F'|' '{print $1 " (extra)"}' extra.list.bak > extra.list1.bak 1.338 + diff -u extra.list1.bak extra.list1 | grep ^+[a-z] >> packages.diff 1.339 + rm extra.list.bak extra.list1 extra.list1.bak 1.340 else 1.341 mv extra.list.bak extra.list 1.342 fi 1.343 @@ -2354,15 +2355,15 @@ 1.344 --check|-c) install="n" ;; 1.345 esac 1.346 done 1.347 - time=$(date +%s) 1.348 + time="$(date +%s)" 1.349 1.350 look_for_priority 1.351 for repo in $priority; do 1.352 - pkg_list=$repo/packages.list 1.353 + pkg_list="$repo/packages.list" 1.354 mtime=$(find $pkg_list -mtime +7) 1.355 - if [ "$mtime" ]; then 1.356 + if [ -n "$mtime" ]; then 1.357 if [ "$repo" == "$PKGS_DB" ]; then 1.358 - repo_name=main 1.359 + repo_name='main' 1.360 else 1.361 repo_name="${repo##*/}" 1.362 fi 1.363 @@ -2376,18 +2377,18 @@ 1.364 cd $INSTALLED 1.365 echo -n > $UP_LIST 1.366 blocked_count=0 1.367 - installed_sum=$PKGS_DB/installed.$SUM 1.368 + installed_sum="$PKGS_DB/installed.$SUM" 1.369 1.370 for pkg in *; do 1.371 [ ! -d $pkg ] && continue 1.372 unset VERSION EXTRAVERSION 1.373 . $pkg/receipt 1.374 - md5=$(fgrep " $PACKAGE-${VERSION}$EXTRAVERSION.tazpkg" \ 1.375 + md5=$(fgrep " $PACKAGE-$VERSION$EXTRAVERSION.tazpkg" \ 1.376 $installed_sum | awk '{print $1}') 1.377 for repo in $priority; do 1.378 - pkg_desc=$repo/packages.desc 1.379 - pkg_list=$repo/packages.list 1.380 - pkg_sum=$repo/packages.$SUM 1.381 + pkg_desc="$repo/packages.desc" 1.382 + pkg_list="$repo/packages.list" 1.383 + pkg_sum="$repo/packages.$SUM" 1.384 1.385 if ! fgrep -q "$md5 $PACKAGE-" $pkg_sum; then 1.386 # Jump to next repository in priority if pkg doesn't exist 1.387 @@ -2441,10 +2442,11 @@ 1.388 $upnb "$blocked")" 1.389 newline 1.390 fi 1.391 + 1.392 # Pkgs to upgrade ? Skip, let install them all or ask user 1.393 - [ "$install" == "n" ] && exit 0 1.394 + [ "$install" == 'n' ] && exit 0 1.395 if [ "$upnb" -gt 0 ]; then 1.396 - if [ "$install" == "y" ]; then 1.397 + if [ "$install" == 'y' ]; then 1.398 answer=0 1.399 else 1.400 confirm "$(_ 'Do you wish to install them now? (y/N)')" 1.401 @@ -2472,11 +2474,13 @@ 1.402 cd $INSTALLED 1.403 shift 1.404 LIST=$@ 1.405 - [ -n "$LIST" ] || LIST=$(ls) 1.406 + [ -z "$LIST" ] && LIST=$(ls) 1.407 MSG=$(_n 'No known bugs.') 1.408 + 1.409 + title 'Known bugs in packages' 1.410 for PACKAGE in $LIST; do 1.411 - BUGS="" 1.412 - EXTRAVERSION="" 1.413 + BUGS='' 1.414 + EXTRAVERSION='' 1.415 . $PACKAGE/receipt 1.416 if [ -n "$BUGS" ]; then 1.417 MSG=$(_n 'Bug list completed') 1.418 @@ -2487,7 +2491,7 @@ 1.419 EOT 1.420 fi 1.421 done 1.422 - echo "$MSG" ;; 1.423 + footer "$MSG" ;; 1.424 1.425 1.426 check)