author | drw <drw> | 2003-02-25 00:39:29 (UTC) |
---|---|---|
committer | drw <drw> | 2003-02-25 00:39:29 (UTC) |
commit | 8d80ed4f9cf8051b5566aaf3f639c76fe7d6de7c (patch) (unidiff) | |
tree | 95ac0e3df097d1d2af81dbb543502b0682043fc0 | |
parent | 45fc2c7089de9bbb7887ba9bdb56c974b19c1caf (diff) | |
download | opie-8d80ed4f9cf8051b5566aaf3f639c76fe7d6de7c.zip opie-8d80ed4f9cf8051b5566aaf3f639c76fe7d6de7c.tar.gz opie-8d80ed4f9cf8051b5566aaf3f639c76fe7d6de7c.tar.bz2 |
Fix for bug #707 - remove package from status file only if package removal was successful.
-rw-r--r-- | noncore/settings/aqpkg/ipkg.cpp | 13 | ||||
-rw-r--r-- | noncore/settings/aqpkg/ipkg.h | 1 |
2 files changed, 8 insertions, 6 deletions
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp index 51eca8b..e66c02d 100644 --- a/noncore/settings/aqpkg/ipkg.cpp +++ b/noncore/settings/aqpkg/ipkg.cpp | |||
@@ -57,6 +57,7 @@ Ipkg :: ~Ipkg() | |||
57 | // dir is the directory to run ipkg in (defaults to "") | 57 | // dir is the directory to run ipkg in (defaults to "") |
58 | bool Ipkg :: runIpkg( ) | 58 | bool Ipkg :: runIpkg( ) |
59 | { | 59 | { |
60 | error = false; | ||
60 | bool ret = false; | 61 | bool ret = false; |
61 | QStringList commands; | 62 | QStringList commands; |
62 | 63 | ||
@@ -168,12 +169,6 @@ bool Ipkg :: runIpkg( ) | |||
168 | 169 | ||
169 | delete dependantPackages; | 170 | delete dependantPackages; |
170 | 171 | ||
171 | // Finally, if we are removing a package, remove its entry from the <destdir>/usr/lib/ipkg/status file | ||
172 | // to workaround an ipkg bug which stops reinstall to a different location | ||
173 | if ( option == "remove" ) | ||
174 | removeStatusEntry(); | ||
175 | |||
176 | |||
177 | emit outputText( "Finished" ); | 172 | emit outputText( "Finished" ); |
178 | emit outputText( "" ); | 173 | emit outputText( "" ); |
179 | return ret; | 174 | return ret; |
@@ -340,10 +335,16 @@ void Ipkg::commandStderr(OProcess*, char *buffer, int buflen) | |||
340 | lineStr=lineStr.left( buflen ); | 335 | lineStr=lineStr.left( buflen ); |
341 | emit outputText( lineStr ); | 336 | emit outputText( lineStr ); |
342 | buffer[0] = '\0'; | 337 | buffer[0] = '\0'; |
338 | error = true; | ||
343 | } | 339 | } |
344 | 340 | ||
345 | void Ipkg::processFinished() | 341 | void Ipkg::processFinished() |
346 | { | 342 | { |
343 | // Finally, if we are removing a package, remove its entry from the <destdir>/usr/lib/ipkg/status file | ||
344 | // to workaround an ipkg bug which stops reinstall to a different location | ||
345 | if ( !error && option == "remove" ) | ||
346 | removeStatusEntry(); | ||
347 | |||
347 | delete proc; | 348 | delete proc; |
348 | proc = 0; | 349 | proc = 0; |
349 | finished = true; | 350 | finished = true; |
diff --git a/noncore/settings/aqpkg/ipkg.h b/noncore/settings/aqpkg/ipkg.h index f08667b..d49bb04 100644 --- a/noncore/settings/aqpkg/ipkg.h +++ b/noncore/settings/aqpkg/ipkg.h | |||
@@ -65,6 +65,7 @@ public slots: | |||
65 | private: | 65 | private: |
66 | bool createLinks; | 66 | bool createLinks; |
67 | bool aborted; | 67 | bool aborted; |
68 | bool error; | ||
68 | QString option; | 69 | QString option; |
69 | QString package; | 70 | QString package; |
70 | QString destination; | 71 | QString destination; |