tazpkg rev 121
tazpkg: fix root for package-list
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon Jul 14 23:44:32 2008 +0000 (2008-07-14) |
parents | 60b6743c7eca |
children | 48a4a8c62924 |
files | tazpkg |
line diff
1.1 --- a/tazpkg Mon Jul 14 21:33:59 2008 +0000 1.2 +++ b/tazpkg Mon Jul 14 23:44:32 2008 +0000 1.3 @@ -59,7 +59,6 @@ 1.4 BLOCKED=$LOCALSTATE/blocked-packages.list 1.5 DEFAULT_MIRROR="http://mirror.slitaz.org/packages/`cat /etc/slitaz-release`/" 1.6 INSTALL_LIST="" 1.7 -PROCESSED_LIST="${TMP_DIR}_processed" 1.8 1.9 # Bold red warning for upgrade. 1.10 WARNING="\\033[1;31mWARNING\\033[0;39m" 1.11 @@ -175,16 +174,16 @@ 1.12 package_fullname_in_dir() 1.13 { 1.14 EXTRAVERSION="" 1.15 - . $1/receipt 1.16 + . $2$1/receipt 1.17 echo $PACKAGE-$VERSION$EXTRAVERSION 1.18 } 1.19 1.20 # Get package name that is already installed. 1.21 get_installed_package_pathname() 1.22 { 1.23 - for i in $INSTALLED/${1%%-*}*; do 1.24 + for i in $2$INSTALLED/${1%%-*}*; do 1.25 [ -d $i ] || continue 1.26 - if [ "$1" = "$(package_fullname_in_dir $i)" ]; then 1.27 + if [ "$1" = "$(package_fullname_in_dir $i $2)" ]; then 1.28 echo $i 1.29 return 1.30 fi 1.31 @@ -194,7 +193,7 @@ 1.32 # Check if a package is already installed. 1.33 check_for_installed_package() 1.34 { 1.35 - if [ -n "$(get_installed_package_pathname $PACKAGE)" ]; then 1.36 + if [ -n "$(get_installed_package_pathname $PACKAGE $1)" ]; then 1.37 echo -e " 1.38 $PACKAGE is already installed. You can use the --forced option to force 1.39 installation or remove it and reinstall.\n" 1.40 @@ -265,7 +264,7 @@ 1.41 install_deps $ROOT 1.42 fi 1.43 mkdir -p $TMP_DIR 1.44 - [ -n "$INSTALL_LIST" ] && echo "$PACKAGE_FILE" >> $PROCESSED_LIST 1.45 + [ -n "$INSTALL_LIST" ] && echo "$PACKAGE_FILE" >> $INSTALL_LIST-processed 1.46 echo "" 1.47 echo -e "\033[1mInstallation of :\033[0m $PACKAGE" 1.48 echo "================================================================================" 1.49 @@ -365,30 +364,34 @@ 1.50 { 1.51 local root 1.52 root="" 1.53 - [ -n "$1" ] && root="--root $1" 1.54 + [ -n "$1" ] && root="--root=$1" 1.55 echo "" 1.56 echo -n "Install all missing dependencies (y/N) ? "; read anser 1.57 + echo "" 1.58 if [ "$anser" = "y" ]; then 1.59 for pkg in $DEPENDS 1.60 do 1.61 if [ ! -d "$1$INSTALLED/$pkg" ]; then 1.62 + local list 1.63 + list="$INSTALL_LIST" 1.64 + [ -n "$list" ] || list="$TOP_DIR/packages.list" 1.65 # We can install packages from a local dir by greping 1.66 # the TAZPKG_BASENAME in the local packages.list. 1.67 - if [ -f "$TOP_DIR/packages.list" ]; then 1.68 + if [ -f "$list" ]; then 1.69 echo "Checking if $pkg exist in local list... " 1.70 mkdir $TMP_DIR 1.71 for i in $pkg-*.tazpkg; do 1.72 - ( cd $TMP_DIR ; cpio -i receipt ) < $i 1.73 - if grep -q ^$(package_fullname_in_dir $TMP_DIR)$ $TOP_DIR/packages.list 1.74 + ( cd $TMP_DIR ; cpio -i receipt > /dev/null) < $i 1.75 + if grep -q ^$(package_fullname_in_dir $TMP_DIR).tazpkg$ $list 1.76 then 1.77 - tazpkg install $i $root 1.78 + tazpkg install $i $root --list=$list 1.79 break 1.80 fi 1.81 done 1.82 rm -rf $TMP_DIR 1.83 # Install deps from the mirror. 1.84 else 1.85 - if [ ! -f "$1$LOCALSTATE/packages.list" ]; then 1.86 + if [ ! -f "$LOCALSTATE/packages.list" ]; then 1.87 tazpkg recharge 1.88 fi 1.89 tazpkg get-install $pkg $root 1.90 @@ -888,6 +891,9 @@ 1.91 --root=*) 1.92 ROOT="${3#--root=}" 1.93 ;; 1.94 + --list=*) 1.95 + INSTALL_LIST="${3#--list=}" 1.96 + ;; 1.97 *) shift 2 1.98 echo -e "\nUnknown option $*.\n" 1.99 exit 1 1.100 @@ -896,7 +902,7 @@ 1.101 shift 1.102 done 1.103 if [ "$DO_CHECK" = "yes" ]; then 1.104 - check_for_installed_package 1.105 + check_for_installed_package $ROOT 1.106 fi 1.107 install_package $ROOT 1.108 ;; 1.109 @@ -919,7 +925,7 @@ 1.110 fi 1.111 1.112 # Remember processed list 1.113 - INSTALL_LIST="$2" 1.114 + export INSTALL_LIST="$2" 1.115 1.116 # Set $COMMAND and install all packages. 1.117 if [ "$1" = "get-install-list" ]; then 1.118 @@ -927,13 +933,13 @@ 1.119 else 1.120 COMMAND=install 1.121 fi 1.122 - touch $PROCESSED_LIST 1.123 + touch $2-processed 1.124 for pkg in $LIST 1.125 do 1.126 - grep -qs ^$pkg$ $PROCESSED_LIST && continue 1.127 - tazpkg $COMMAND $pkg "$3" "$4" "$5" 1.128 + grep -qs ^$pkg$ $2-processed && continue 1.129 + tazpkg $COMMAND $pkg --list=$2 "$3" "$4" "$5" 1.130 done 1.131 - rm -f $PROCESSED_LIST 1.132 + rm -f $2-processed 1.133 ;; 1.134 add-flavor) 1.135 # Install a set of packages from a flavor. 1.136 @@ -1203,7 +1209,7 @@ 1.137 echo "================================================================================" 1.138 echo "" 1.139 # Some packages must be installed first 1.140 - FIRST_CLASS_PACKAGE=" glibc-base slitaz-base-files slitaz-boot-scripts 1.141 + FIRST_CLASS_PACKAGE=" glibc-base slitaz-base-files slitaz-boot-scripts " 1.142 for pkg in $INSTALLED/* 1.143 do 1.144 EXTRAVERSION="" 1.145 @@ -1430,11 +1436,30 @@ 1.146 check_for_package_on_cmdline 1.147 check_for_packages_list 1.148 check_for_package_in_list 1.149 + DO_CHECK="" 1.150 + while [ -n "$3" ]; do 1.151 + case "$3" in 1.152 + --forced) 1.153 + DO_CHECK="no" 1.154 + ;; 1.155 + --root=*) 1.156 + ROOT="${3#--root=}" 1.157 + ;; 1.158 + --list=*) 1.159 + INSTALL_LIST="${3#--list=}" 1.160 + ;; 1.161 + *) shift 2 1.162 + echo -e "\nUnknown option $*.\n" 1.163 + exit 1 1.164 + ;; 1.165 + esac 1.166 + shift 1.167 + done 1.168 # Check if forced install. 1.169 - if [ "$3" = "--forced" ]; then 1.170 + if [ "$DO_CHECK" = "no" ]; then 1.171 rm -f $CACHE_DIR/$PACKAGE.tazpkg 1.172 else 1.173 - check_for_installed_package 1.174 + check_for_installed_package $ROOT 1.175 fi 1.176 cd $CACHE_DIR 1.177 if [ -f "$PACKAGE.tazpkg" ]; then 1.178 @@ -1449,7 +1474,7 @@ 1.179 download $PACKAGE.tazpkg 1.180 fi 1.181 PACKAGE_FILE=$CACHE_DIR/$PACKAGE.tazpkg 1.182 - install_package 1.183 + install_package $ROOT 1.184 ;; 1.185 clean-cache) 1.186 # Remove all downloaded packages.