aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Woodward2005-01-29 19:01:56 +0000
committerJason Woodward2005-01-29 19:01:56 +0000
commit5e8a216653e6fec0f27a8430f8dacfe3f0c2b435 (patch)
treedac5d209872a358cac99bc856ebb5f39c11b148e
parent533cf3f18310bf4c606463c143bc771fcb6323cb (diff)
downloadslapt-get-5e8a216653e6fec0f27a8430f8dacfe3f0c2b435.tar.gz
changed order of transaction, removes now happen first in case files in the packages to be removed are shared with those packages about to be installed or upgraded.
-rw-r--r--ChangeLog3
-rw-r--r--FAQ9
-rw-r--r--FAQ.html9
-rw-r--r--src/transaction.c16
4 files changed, 19 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 6872af5..4d9f226 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
0.9.9g Jan 29, 2005
+ * changed order of transaction, removes now happen first in case files in the
+ packages to be removed are shared with those packages about to be installed
+ or upgraded.
* ensure that package removal doesn't happen when --download-only is specified
* updated documentation
* transaction report now reports sizes in kB or in MB
diff --git a/FAQ b/FAQ
index 476ab9b..fea4d7b 100644
--- a/FAQ
+++ b/FAQ
@@ -552,10 +552,11 @@ Frequently Asked Questions:
user passes in --no-prompt on the command line). After this confirmation, all
packages will be downloaded before anything else happens. If anything fails
to download, the transaction is immediately aborted. If all packages download
- successfully, all packages to be installed (new installs) are installed first.
- This should satisfy dependencies of the packages to be upgraded, which follow
- after the new installs. Finally, all removals in the transaction are
- completed. This helps keep your system in a consistent state.
+ successfully, all removals in the transaction are completed first (in case
+ packages being installed/upgraded share files with the packages to be removed).
+ Next, all packages to be installed (new installs) are installed. This should
+ satisfy dependencies of the packages to be upgraded, which follow after the new
+ installs. This helps keep your system in a consistent state.
27. How does the package version comparison algorithm work?
diff --git a/FAQ.html b/FAQ.html
index fb49c69..c200b6e 100644
--- a/FAQ.html
+++ b/FAQ.html
@@ -566,10 +566,11 @@
user passes in --no-prompt on the command line). After this confirmation, all
packages will be downloaded before anything else happens. If anything fails
to download, the transaction is immediately aborted. If all packages download
- successfully, all packages to be installed (new installs) are installed first.
- This should satisfy dependencies of the packages to be upgraded, which follow
- after the new installs. Finally, all removals in the transaction are
- completed. This helps keep your system in a consistent state.
+ successfully, all removals in the transaction are completed first (in case
+ packages being installed/upgraded share files with the packages to be removed).
+ Next, all packages to be installed (new installs) are installed. This should
+ satisfy dependencies of the packages to be upgraded, which follow after the new
+ installs. This helps keep your system in a consistent state.
<a name="slgFAQ27"><b>27. How does the package version comparison algorithm work?</b></a>
diff --git a/src/transaction.c b/src/transaction.c
index ee46251..27ed396 100644
--- a/src/transaction.c
+++ b/src/transaction.c
@@ -272,22 +272,18 @@ int handle_transaction(const rc_config *global_config, transaction_t *tran){
printf("\n");
- /* run transaction, install, upgrade, and remove */
- for(i = 0; i < tran->install_pkgs->pkg_count;i++){
- if( global_config->download_only == FALSE )
+ /* run transaction, remove, install, and upgrade */
+ if( global_config->download_only == FALSE ){
+ for(i = 0; i < tran->install_pkgs->pkg_count;i++){
if( install_pkg(global_config,tran->install_pkgs->pkgs[i]) == -1 ) exit(1);
- }
- for(i = 0; i < tran->upgrade_pkgs->pkg_count;i++){
- if( global_config->download_only == FALSE ){
+ }
+ for(i = 0; i < tran->upgrade_pkgs->pkg_count;i++){
if( upgrade_pkg( global_config,
tran->upgrade_pkgs->pkgs[i]->installed,
tran->upgrade_pkgs->pkgs[i]->upgrade
) == -1 ) exit(1);
}
-
- }
- for(i = 0; i < tran->remove_pkgs->pkg_count;i++){
- if( global_config->download_only == FALSE ){
+ for(i = 0; i < tran->remove_pkgs->pkg_count;i++){
if( remove_pkg(global_config,tran->remove_pkgs->pkgs[i]) == -1 ) exit(1);
}
}