tazpkg rev 460
Merge new features from branch 4.3
author | Antoine Bodin <gokhlayeh@slitaz.org> |
---|---|
date | Wed Apr 06 16:51:20 2011 +0200 (2011-04-06) |
parents | 3ddb4fd7328f 68f72d0a2b3a |
children | b8b913af3cd7 |
files | .hgtags tazpkg |
line diff
1.1 --- a/.hgtags Wed Apr 06 01:33:25 2011 +0200 1.2 +++ b/.hgtags Wed Apr 06 16:51:20 2011 +0200 1.3 @@ -39,5 +39,7 @@ 1.4 13789d978d2330ebdbf1dbb6088d141ae3417fa0 4.2.4 1.5 88a196a42cd8fcc80ae8b133dd999337c9dc6d6d 4.2.5 1.6 2784093ebf38aed33d3794bd62291bbcc6191075 4.2.6 1.7 +a2c85fb6212467e55ae60d8821812e04ac8f98e7 4.3-beta 1.8 +f8a1a260f8111d2fe7fab8c2755441c53fb817a5 4.3-beta2 1.9 18a0552011dad34429616d42901b40dcf2b8d533 4.3 1.10 beaa0348485d42aeeb50e204b2416572ffcbf662 4.4
2.1 --- a/tazpkg Wed Apr 06 01:33:25 2011 +0200 2.2 +++ b/tazpkg Wed Apr 06 16:51:20 2011 +0200 2.3 @@ -1751,14 +1751,16 @@ 2.4 check_for_package_on_cmdline 2.5 check_for_package_file 2.6 2.7 - # Get repositories priority list. 2.8 - look_for_priority 2.9 get_options_list="root forced list" 2.10 get_options 2.11 2.12 + [ "$root" ] && ROOT="$root" && check_base_dir "$root" 2.13 + [ "$list" ] && INSTALL_LIST="$list" 2.14 + 2.15 + # Get repositories priority list. 2.16 + look_for_priority 2.17 + 2.18 # Check if forced install. 2.19 - [ "$root" ] && ROOT="$root" && check_dir "$root" 2.20 - [ "$list" ] && INSTALL_LIST="$list" 2.21 if ! [ "$forced" ]; then 2.22 check_for_installed_package $ROOT 2.23 fi 2.24 @@ -2217,31 +2219,79 @@ 2.25 # Recharge packages.list from a mirror. 2.26 # 2.27 check_root 2.28 - 2.29 - for path in $LOCALSTATE $LOCALSTATE/undigest/*; do 2.30 + get_options_list="root forced list rootconfig" 2.31 + get_options 2.32 + ARG=$2 2.33 + if [ "$root" ]; then 2.34 + LOCALSTATE=$root$LOCALSTATE 2.35 + [ "${2#--}" != "$2" ] && ARG=$3 2.36 + fi 2.37 + if [ "$ARG" = main ]; then 2.38 + repository_to_recharge=$LOCALSTATE 2.39 + elif [ "$ARG" ]; then 2.40 + if [ -d "$LOCALSTATE/undigest/$ARG" ]; then 2.41 + repository_to_recharge=$LOCALSTATE/undigest/$ARG 2.42 + else 2.43 + echo "\$LOCALSTATE/undigest/$ARG `gettext \"doesn't exists.\"`" >&2 2.44 + exit 1 2.45 + fi 2.46 + else 2.47 + repository_to_recharge="$LOCALSTATE $LOCALSTATE/undigest/*" 2.48 + fi 2.49 + for path in $repository_to_recharge; do 2.50 [ -f $path/mirror ] || continue 2.51 + cd $path 2.52 + 2.53 + # Quietly check if recharging is needed. 2.54 + [ -f ID ] && mv ID ID.bak 2.55 + download_from "$(cat mirror)" ID >/dev/null 2>/dev/null 2.56 + if [ -f ID ] && fgrep -q `cat ID.bak 2>/dev/null || echo "null"` ID; then 2.57 + if [ "$path" = "$LOCALSTATE" ]; then 2.58 + repository_name=Main 2.59 + else 2.60 + repository_name="`gettext \"Undigest\"` $(basename $path)" 2.61 + fi 2.62 + echo "$repository_name `gettext \"is up to date.\"`" 2.63 + rm ID.bak 2.64 + continue 2.65 + fi 2.66 + 2.67 + # Don't let ID be a symlink when using local repository. 2.68 + if [ -f ID ]; then 2.69 + mv -f ID ID.bak 2.70 + cat ID.bak > ID 2.71 + rm ID.bak 2.72 + fi 2.73 + 2.74 echo "" 2.75 if [ "$path" != "$LOCALSTATE" ]; then 2.76 echo -e "`gettext \"Recharging undigest\"` $(basename $path):" 2.77 fi 2.78 - cd $path 2.79 + 2.80 if [ -f "packages.list" ]; then 2.81 gettext "Creating backup of the last packages list..." 2.82 - mv -f packages.desc packages.desc.bak 2>/dev/null 2.83 - mv -f packages.md5 packages.md5.txt 2>/dev/null 2.84 - mv -f packages.txt packages.txt.bak 2>/dev/null 2.85 - mv -f packages.list packages.list.bak 2>/dev/null 2.86 - mv -f packages.equiv packages.equiv.bak 2>/dev/null 2.87 - mv -f files.list.lzma files.list.lzma.bak 2> /dev/null 2.88 - mv -f mirrors mirrors.bak 2> /dev/null 2.89 + for i in wanted.txt depends.txt libraries.txt \ 2.90 + packages.desc packages.md5 packages.txt \ 2.91 + packages.list packages.equiv files.list.lzma \ 2.92 + mirrors; do 2.93 + mv -f $i $i.bak 2>/dev/null 2.94 + done 2.95 status 2.96 fi 2.97 - download_from "$(cat mirror)" packages.desc 2.98 - download_from "$(cat mirror)" packages.md5 2.99 - download_from "$(cat mirror)" packages.txt 2.100 - download_from "$(cat mirror)" packages.list 2.101 - download_from "$(cat mirror)" packages.equiv 2.102 + for i in desc md5 txt list equiv; do 2.103 + download_from "$(cat mirror)" packages.$i 2.104 + done 2.105 + 2.106 download_from "$(cat mirror)" files.list.lzma 2.107 + 2.108 + # ID file & wanted/depends/libraries files were implemented 2.109 + # at the same time. Not all repositories have them. 2.110 + if [ -f ID ]; then 2.111 + for i in wanted depends library; do 2.112 + download_from "$(cat mirror)" $i.txt 2.113 + done 2.114 + fi 2.115 + 2.116 download_from "$(sed 's|packages/.*||' < mirror)" mirrors 2.117 [ -f mirrors ] || mv mirrors.bak mirrors 2> /dev/null 2.118 suffix=$(head -1 mirror) 2.119 @@ -2614,16 +2664,28 @@ 2.120 check_root 2.121 check_for_package_on_cmdline 2.122 check_for_packages_list 2.123 - 2.124 - # Get repositories priority list. 2.125 - look_for_priority 2.126 - get_options_list="root forced list" 2.127 + 2.128 + get_options_list="root forced list rootconfig" 2.129 get_options 2.130 2.131 DO_CHECK="" 2.132 [ "$forced" ] && DO_CHECK=no 2.133 - [ "$root" ] && ROOT="$root" && check_dir "$root" 2.134 + [ "$root" ] && ROOT="$root" && check_base_dir "$root" 2.135 [ "$list" ] && INSTALL_LIST="$list" 2.136 + if [ "$rootconfig" ]; then 2.137 + if [ "$root" ]; then 2.138 + CACHE_DIR=$root/$CACHE_DIR 2.139 + SAVE_CACHE_DIR=$CACHE_DIR 2.140 + LOCALSTATE=$root/$LOCALSTATE 2.141 + else 2.142 + echo "rootconfig needs --root= option used." >&2 2.143 + exit 1 2.144 + fi 2.145 + fi 2.146 + 2.147 + # Get repositories priority list. 2.148 + look_for_priority 2.149 + 2.150 AUTOEXEC="no" 2.151 if ! check_for_package_in_list check; then 2.152 PACKAGE=get-$PACKAGE 2.153 @@ -2657,6 +2719,7 @@ 2.154 download $PACKAGE.tazpkg 2.155 fi 2.156 PACKAGE_FILE=$CACHE_DIR/$PACKAGE.tazpkg 2.157 + [ "$rootconfig" ] && LOCALSTATE=${LOCALSTATE#$root} 2.158 install_package $ROOT 2.159 [ "$AUTOEXEC" != "no" ] && $PACKAGE $ROOT 2.160 update_desktop_database $ROOT