author | andyq <andyq> | 2002-11-23 15:27:33 (UTC) |
---|---|---|
committer | andyq <andyq> | 2002-11-23 15:27:33 (UTC) |
commit | 7763c095d81f44cd3012d894da6b17eb0b0cc194 (patch) (unidiff) | |
tree | 286c3392f3ad9b06429a136413590ec99ebefadf | |
parent | dd850ee9705b0329d49c3e1b0f22d76ce62f7a0b (diff) | |
download | opie-7763c095d81f44cd3012d894da6b17eb0b0cc194.zip opie-7763c095d81f44cd3012d894da6b17eb0b0cc194.tar.gz opie-7763c095d81f44cd3012d894da6b17eb0b0cc194.tar.bz2 |
1.6 Beta - Changed ipg process to use OProcess instead of popen for async io
-rw-r--r-- | noncore/settings/aqpkg/global.h | 2 | ||||
-rw-r--r-- | noncore/settings/aqpkg/ipkg.cpp | 121 | ||||
-rw-r--r-- | noncore/settings/aqpkg/ipkg.h | 18 |
3 files changed, 110 insertions, 31 deletions
diff --git a/noncore/settings/aqpkg/global.h b/noncore/settings/aqpkg/global.h index e1a4ed4..cec9aa5 100644 --- a/noncore/settings/aqpkg/global.h +++ b/noncore/settings/aqpkg/global.h | |||
@@ -13,17 +13,17 @@ | |||
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * (at your option) any later version. * | 14 | * (at your option) any later version. * |
15 | * * | 15 | * * |
16 | ***************************************************************************/ | 16 | ***************************************************************************/ |
17 | 17 | ||
18 | #ifndef __GLOBAL_H | 18 | #ifndef __GLOBAL_H |
19 | #define __GLOBAL_H | 19 | #define __GLOBAL_H |
20 | 20 | ||
21 | #define VERSION_TEXT "AQPkg Version 1.5" | 21 | #define VERSION_TEXT "AQPkg Version 1.6 BETA" |
22 | 22 | ||
23 | // Uncomment the below line to run on a Linux box rather than a Zaurus | 23 | // Uncomment the below line to run on a Linux box rather than a Zaurus |
24 | // box this allows you to change where root is, and where to load config files from | 24 | // box this allows you to change where root is, and where to load config files from |
25 | // #define X86 | 25 | // #define X86 |
26 | 26 | ||
27 | // Sets up location of ipkg.conf and root directory | 27 | // Sets up location of ipkg.conf and root directory |
28 | #ifdef QWS | 28 | #ifdef QWS |
29 | 29 | ||
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp index dad34b0..1efe030 100644 --- a/noncore/settings/aqpkg/ipkg.cpp +++ b/noncore/settings/aqpkg/ipkg.cpp | |||
@@ -26,16 +26,18 @@ using namespace std; | |||
26 | #ifdef QWS | 26 | #ifdef QWS |
27 | #include <qpe/qpeapplication.h> | 27 | #include <qpe/qpeapplication.h> |
28 | #else | 28 | #else |
29 | #include <qapplication.h> | 29 | #include <qapplication.h> |
30 | #endif | 30 | #endif |
31 | #include <qdir.h> | 31 | #include <qdir.h> |
32 | #include <qtextstream.h> | 32 | #include <qtextstream.h> |
33 | 33 | ||
34 | #include <opie/oprocess.h> | ||
35 | |||
34 | #include "utils.h" | 36 | #include "utils.h" |
35 | #include "ipkg.h" | 37 | #include "ipkg.h" |
36 | #include "global.h" | 38 | #include "global.h" |
37 | 39 | ||
38 | Ipkg :: Ipkg() | 40 | Ipkg :: Ipkg() |
39 | { | 41 | { |
40 | } | 42 | } |
41 | 43 | ||
@@ -50,71 +52,70 @@ Ipkg :: ~Ipkg() | |||
50 | // package parameter) | 52 | // package parameter) |
51 | // dest is the destination alias (from ipk.conf) | 53 | // dest is the destination alias (from ipk.conf) |
52 | // destDir is the dir that the destination alias points to (used to link to root) | 54 | // destDir is the dir that the destination alias points to (used to link to root) |
53 | // flags is the ipkg options flags | 55 | // flags is the ipkg options flags |
54 | // dir is the directory to run ipkg in (defaults to "") | 56 | // dir is the directory to run ipkg in (defaults to "") |
55 | bool Ipkg :: runIpkg( ) | 57 | bool Ipkg :: runIpkg( ) |
56 | { | 58 | { |
57 | bool ret = false; | 59 | bool ret = false; |
60 | QStringList commands; | ||
58 | 61 | ||
59 | QDir::setCurrent( "/tmp" ); | 62 | QDir::setCurrent( "/tmp" ); |
60 | QString cmd = ""; | ||
61 | 63 | ||
62 | if ( runtimeDir != "" ) | 64 | if ( runtimeDir != "" ) |
63 | { | 65 | { |
64 | cmd += "cd "; | 66 | commands << "cd "; |
65 | cmd += runtimeDir; | 67 | commands << runtimeDir; |
66 | cmd += " ; "; | 68 | commands << ";"; |
67 | } | 69 | } |
68 | cmd += "ipkg -force-defaults"; | 70 | commands << "ipkg" << "-force-defaults"; |
69 | 71 | ||
70 | // only set the destination for an install operation | 72 | // only set the destination for an install operation |
71 | if ( option == "install" ) | 73 | if ( option == "install" ) |
72 | cmd += " -dest "+ destination; | 74 | commands << "-dest" << destination; |
73 | 75 | ||
74 | 76 | ||
75 | if ( option != "update" && option != "download" ) | 77 | if ( option != "update" && option != "download" ) |
76 | { | 78 | { |
77 | if ( flags & FORCE_DEPENDS ) | 79 | if ( flags & FORCE_DEPENDS ) |
78 | cmd += " -force-depends"; | 80 | commands << "-force-depends"; |
79 | if ( flags & FORCE_REINSTALL ) | 81 | if ( flags & FORCE_REINSTALL ) |
80 | cmd += " -force-reinstall"; | 82 | commands << "-force-reinstall"; |
81 | if ( flags & FORCE_REMOVE ) | 83 | if ( flags & FORCE_REMOVE ) |
82 | cmd += " -force-removal-of-essential-packages"; | 84 | commands << "-force-removal-of-essential-packages"; |
83 | if ( flags & FORCE_OVERWRITE ) | 85 | if ( flags & FORCE_OVERWRITE ) |
84 | cmd += " -force-overwrite"; | 86 | commands << "-force-overwrite"; |
85 | if ( flags & VERBOSE_WGET ) | 87 | if ( flags & VERBOSE_WGET ) |
86 | cmd += " -verbose_wget"; | 88 | commands << "-verbose_wget"; |
87 | 89 | ||
88 | // Handle make links | 90 | // Handle make links |
89 | // Rules - If make links is switched on, create links to root | 91 | // Rules - If make links is switched on, create links to root |
90 | // if destDir is NOT / | 92 | // if destDir is NOT / |
91 | if ( flags & MAKE_LINKS ) | 93 | if ( flags & MAKE_LINKS ) |
92 | { | 94 | { |
93 | // If destDir == / turn off make links as package is being insalled | 95 | // If destDir == / turn off make links as package is being insalled |
94 | // to root already. | 96 | // to root already. |
95 | if ( destDir == "/" ) | 97 | if ( destDir == "/" ) |
96 | flags ^= MAKE_LINKS; | 98 | flags ^= MAKE_LINKS; |
97 | } | 99 | } |
98 | } | 100 | } |
99 | 101 | ||
100 | #ifdef X86 | 102 | #ifdef X86 |
101 | cmd += " -f "; | 103 | commands << "-f"; |
102 | cmd += IPKG_CONF; | 104 | commands << IPKG_CONF; |
103 | #endif | 105 | #endif |
104 | 106 | ||
105 | 107 | ||
106 | if ( option == "reinstall" ) | 108 | if ( option == "reinstall" ) |
107 | cmd += " install"; | 109 | commands << "install"; |
108 | else | 110 | else |
109 | cmd += " " + option; | 111 | commands << option; |
110 | if ( package != "" ) | 112 | if ( package != "" ) |
111 | cmd += " " + package; | 113 | commands << package; |
112 | cmd += " 2>&1"; | ||
113 | 114 | ||
114 | 115 | ||
115 | if ( package != "" ) | 116 | if ( package != "" ) |
116 | emit outputText( QString( "Dealing with package " ) + package ); | 117 | emit outputText( QString( "Dealing with package " ) + package ); |
117 | 118 | ||
118 | qApp->processEvents(); | 119 | qApp->processEvents(); |
119 | 120 | ||
120 | // If we are removing packages and make links option is selected | 121 | // If we are removing packages and make links option is selected |
@@ -125,34 +126,32 @@ bool Ipkg :: runIpkg( ) | |||
125 | if ( flags & MAKE_LINKS ) | 126 | if ( flags & MAKE_LINKS ) |
126 | { | 127 | { |
127 | emit outputText( QString( "Removing symbolic links...\n" ) ); | 128 | emit outputText( QString( "Removing symbolic links...\n" ) ); |
128 | linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); | 129 | linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); |
129 | emit outputText( QString( " " ) ); | 130 | emit outputText( QString( " " ) ); |
130 | } | 131 | } |
131 | } | 132 | } |
132 | 133 | ||
133 | emit outputText( cmd ); | ||
134 | |||
135 | // Execute command | 134 | // Execute command |
136 | dependantPackages = new QList<QString>; | 135 | dependantPackages = new QList<QString>; |
137 | dependantPackages->setAutoDelete( true ); | 136 | dependantPackages->setAutoDelete( true ); |
138 | 137 | ||
139 | ret = executeIpkgCommand( cmd, option ); | 138 | ret = executeIpkgCommand( commands, option ); |
140 | 139 | ||
141 | if ( option == "install" || option == "reinstall" ) | 140 | if ( option == "install" || option == "reinstall" ) |
142 | { | 141 | { |
143 | // If we are not removing packages and make links option is selected | 142 | // If we are not removing packages and make links option is selected |
144 | // create the links | 143 | // create the links |
145 | createLinks = true; | 144 | createLinks = true; |
146 | if ( flags & MAKE_LINKS ) | 145 | if ( flags & MAKE_LINKS ) |
147 | { | 146 | { |
148 | emit outputText( " " ); | 147 | emit outputText( " " ); |
149 | emit outputText( QString( "Creating symbolic links for " )+ package ); | 148 | emit outputText( QString( "Creating symbolic links for " )+ package ); |
150 | 149 | ||
151 | linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); | 150 | linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir ); |
152 | 151 | ||
153 | // link dependant packages that were installed with this release | 152 | // link dependant packages that were installed with this release |
154 | QString *pkg; | 153 | QString *pkg; |
155 | for ( pkg = dependantPackages->first(); pkg != 0; pkg = dependantPackages->next() ) | 154 | for ( pkg = dependantPackages->first(); pkg != 0; pkg = dependantPackages->next() ) |
156 | { | 155 | { |
157 | if ( *pkg == package ) | 156 | if ( *pkg == package ) |
158 | continue; | 157 | continue; |
@@ -164,22 +163,22 @@ bool Ipkg :: runIpkg( ) | |||
164 | } | 163 | } |
165 | 164 | ||
166 | delete dependantPackages; | 165 | delete dependantPackages; |
167 | 166 | ||
168 | // Finally, if we are removing a package, remove its entry from the <destdir>/usr/lib/ipkg/status file | 167 | // Finally, if we are removing a package, remove its entry from the <destdir>/usr/lib/ipkg/status file |
169 | // to workaround an ipkg bug which stops reinstall to a different location | 168 | // to workaround an ipkg bug which stops reinstall to a different location |
170 | if ( option == "remove" ) | 169 | if ( option == "remove" ) |
171 | removeStatusEntry(); | 170 | removeStatusEntry(); |
172 | |||
173 | 171 | ||
174 | // emit outputText( QString( "Finished - status=" ) + (ret ? "success" : "failure") ); | 172 | |
175 | emit outputText( "Finished" ); | 173 | emit outputText( "Finished" ); |
176 | emit outputText( "" ); | 174 | emit outputText( "" ); |
177 | return ret; | 175 | return ret; |
176 | |||
178 | } | 177 | } |
179 | 178 | ||
180 | void Ipkg :: removeStatusEntry() | 179 | void Ipkg :: removeStatusEntry() |
181 | { | 180 | { |
182 | QString statusFile = destDir; | 181 | QString statusFile = destDir; |
183 | if ( statusFile.right( 1 ) != "/" ) | 182 | if ( statusFile.right( 1 ) != "/" ) |
184 | statusFile += "/"; | 183 | statusFile += "/"; |
185 | statusFile += "usr/lib/ipkg/status"; | 184 | statusFile += "usr/lib/ipkg/status"; |
@@ -250,17 +249,85 @@ void Ipkg :: removeStatusEntry() | |||
250 | in.close(); | 249 | in.close(); |
251 | out.close(); | 250 | out.close(); |
252 | 251 | ||
253 | // Remove old status file and put tmp stats file in its place | 252 | // Remove old status file and put tmp stats file in its place |
254 | remove( statusFile ); | 253 | remove( statusFile ); |
255 | rename( outStatusFile, statusFile ); | 254 | rename( outStatusFile, statusFile ); |
256 | } | 255 | } |
257 | 256 | ||
257 | int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString option ) | ||
258 | { | ||
259 | // OK we're gonna use OProcess to run this thing | ||
260 | proc = new OProcess(); | ||
261 | |||
262 | // Connect up our slots | ||
263 | connect(proc, SIGNAL(processExited(OProcess *)), | ||
264 | this, SLOT( processFinished())); | ||
265 | |||
266 | connect(proc, SIGNAL(receivedStdout(OProcess *, char *, int)), | ||
267 | this, SLOT(commandStdout(OProcess *, char *, int))); | ||
268 | |||
269 | connect(proc, SIGNAL(receivedStderr(OProcess *, char *, int)), | ||
270 | this, SLOT(commandStderr(OProcess *, char *, int))); | ||
271 | |||
272 | for ( QStringList::Iterator it = cmd.begin(); it != cmd.end(); ++it ) | ||
273 | { | ||
274 | qDebug( "%s ", (*it).latin1() ); | ||
275 | *proc << (*it).latin1(); | ||
276 | } | ||
277 | cout << endl; | ||
278 | |||
279 | // Start the process going | ||
280 | finished = false; | ||
281 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) | ||
282 | { | ||
283 | emit outputText( QString( "Couldn't start ipkg process" ) ); | ||
284 | qDebug( "Couldn't start ipkg process!" ); | ||
285 | } | ||
286 | |||
287 | // Now wait for it to finish | ||
288 | while ( !finished ) | ||
289 | qApp->processEvents(); | ||
290 | } | ||
291 | |||
292 | void Ipkg::commandStdout(OProcess*, char *buffer, int buflen) | ||
293 | { | ||
294 | qDebug("received stdout %d bytes", buflen); | ||
295 | |||
296 | QString lineStr = buffer; | ||
297 | if ( lineStr[buflen-1] == '\n' ) | ||
298 | buflen --; | ||
299 | lineStr = lineStr.left( buflen ); | ||
300 | emit outputText( lineStr ); | ||
301 | qDebug(lineStr); | ||
302 | buffer[0] = '\0'; | ||
303 | } | ||
304 | |||
305 | void Ipkg::commandStderr(OProcess*, char *buffer, int buflen) | ||
306 | { | ||
307 | qDebug("received stderrt %d bytes", buflen); | ||
308 | |||
309 | QString lineStr = buffer; | ||
310 | if ( lineStr[buflen-1] == '\n' ) | ||
311 | buflen --; | ||
312 | lineStr=lineStr.left( buflen ); | ||
313 | emit outputText( lineStr ); | ||
314 | buffer[0] = '\0'; | ||
315 | } | ||
316 | |||
317 | void Ipkg::processFinished() | ||
318 | { | ||
319 | delete proc; | ||
320 | finished = true; | ||
321 | } | ||
322 | |||
323 | |||
258 | 324 | ||
325 | /* | ||
259 | int Ipkg :: executeIpkgCommand( QString &cmd, const QString option ) | 326 | int Ipkg :: executeIpkgCommand( QString &cmd, const QString option ) |
260 | { | 327 | { |
261 | FILE *fp = NULL; | 328 | FILE *fp = NULL; |
262 | char line[130]; | 329 | char line[130]; |
263 | QString lineStr, lineStrOld; | 330 | QString lineStr, lineStrOld; |
264 | int ret = false; | 331 | int ret = false; |
265 | 332 | ||
266 | fp = popen( (const char *) cmd, "r"); | 333 | fp = popen( (const char *) cmd, "r"); |
@@ -288,17 +355,17 @@ int Ipkg :: executeIpkgCommand( QString &cmd, const QString option ) | |||
288 | if ( lineStr.startsWith( "Installing " ) ) | 355 | if ( lineStr.startsWith( "Installing " ) ) |
289 | { | 356 | { |
290 | int start = lineStr.find( " " ) + 1; | 357 | int start = lineStr.find( " " ) + 1; |
291 | int end = lineStr.find( " ", start ); | 358 | int end = lineStr.find( " ", start ); |
292 | QString *package = new QString( lineStr.mid( start, end-start ) ); | 359 | QString *package = new QString( lineStr.mid( start, end-start ) ); |
293 | dependantPackages->append( package ); | 360 | dependantPackages->append( package ); |
294 | } | 361 | } |
295 | } | 362 | } |
296 | 363 | ||
297 | if ( option == "update" ) | 364 | if ( option == "update" ) |
298 | { | 365 | { |
299 | if (lineStr.contains("Updated list")) | 366 | if (lineStr.contains("Updated list")) |
300 | ret = true; | 367 | ret = true; |
301 | } | 368 | } |
302 | else if ( option == "download" ) | 369 | else if ( option == "download" ) |
303 | { | 370 | { |
304 | if (lineStr.contains("Downloaded")) | 371 | if (lineStr.contains("Downloaded")) |
@@ -315,17 +382,17 @@ int Ipkg :: executeIpkgCommand( QString &cmd, const QString option ) | |||
315 | lineStrOld = lineStr; | 382 | lineStrOld = lineStr; |
316 | qApp->processEvents(); | 383 | qApp->processEvents(); |
317 | } | 384 | } |
318 | pclose(fp); | 385 | pclose(fp); |
319 | } | 386 | } |
320 | 387 | ||
321 | return ret; | 388 | return ret; |
322 | } | 389 | } |
323 | 390 | */ | |
324 | 391 | ||
325 | void Ipkg :: linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ) | 392 | void Ipkg :: linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ) |
326 | { | 393 | { |
327 | if ( dest == "root" || dest == "/" ) | 394 | if ( dest == "root" || dest == "/" ) |
328 | return; | 395 | return; |
329 | 396 | ||
330 | qApp->processEvents(); | 397 | qApp->processEvents(); |
331 | QStringList *fileList = getList( packFileName, destDir ); | 398 | QStringList *fileList = getList( packFileName, destDir ); |
@@ -343,20 +410,20 @@ QStringList* Ipkg :: getList( const QString &packageFilename, const QString &des | |||
343 | if ( !f.open(IO_ReadOnly) ) | 410 | if ( !f.open(IO_ReadOnly) ) |
344 | { | 411 | { |
345 | // Couldn't open from dest, try from / | 412 | // Couldn't open from dest, try from / |
346 | cout << "Could not open:" << packageFileDir << endl; | 413 | cout << "Could not open:" << packageFileDir << endl; |
347 | f.close(); | 414 | f.close(); |
348 | 415 | ||
349 | packageFileDir = "/usr/lib/ipkg/info/"+packageFilename+".list"; | 416 | packageFileDir = "/usr/lib/ipkg/info/"+packageFilename+".list"; |
350 | f.setName( packageFileDir ); | 417 | f.setName( packageFileDir ); |
351 | // cout << "Try to open " << packageFileDir.latin1() << endl; | 418 | qDebug( "Try to open %s", packageFileDir.latin1() ); |
352 | if ( ! f.open(IO_ReadOnly) ) | 419 | if ( ! f.open(IO_ReadOnly) ) |
353 | { | 420 | { |
354 | cout << "Could not open:" << packageFileDir << endl; | 421 | qDebug( "Could not open: %s", packageFileDir ); |
355 | emit outputText( QString( "Could not open :" ) + packageFileDir ); | 422 | emit outputText( QString( "Could not open :" ) + packageFileDir ); |
356 | return (QStringList*)0; | 423 | return (QStringList*)0; |
357 | } | 424 | } |
358 | } | 425 | } |
359 | QStringList *fileList = new QStringList(); | 426 | QStringList *fileList = new QStringList(); |
360 | QTextStream t( &f ); | 427 | QTextStream t( &f ); |
361 | while ( !t.eof() ) | 428 | while ( !t.eof() ) |
362 | *fileList += t.readLine(); | 429 | *fileList += t.readLine(); |
diff --git a/noncore/settings/aqpkg/ipkg.h b/noncore/settings/aqpkg/ipkg.h index 7099ca7..25bae59 100644 --- a/noncore/settings/aqpkg/ipkg.h +++ b/noncore/settings/aqpkg/ipkg.h | |||
@@ -20,25 +20,28 @@ | |||
20 | 20 | ||
21 | 21 | ||
22 | /** | 22 | /** |
23 | *@author Andy Qua | 23 | *@author Andy Qua |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <qobject.h> | 26 | #include <qobject.h> |
27 | #include <qstring.h> | 27 | #include <qstring.h> |
28 | #include <qstringlist.h> | ||
28 | #include <qlist.h> | 29 | #include <qlist.h> |
29 | 30 | ||
30 | #define FORCE_DEPENDS 0x0001 | 31 | #define FORCE_DEPENDS 0x0001 |
31 | #define FORCE_REMOVE 0x0002 | 32 | #define FORCE_REMOVE 0x0002 |
32 | #define FORCE_REINSTALL 0x0004 | 33 | #define FORCE_REINSTALL 0x0004 |
33 | #define FORCE_OVERWRITE 0x0008 | 34 | #define FORCE_OVERWRITE 0x0008 |
34 | #define MAKE_LINKS 0x0010 | 35 | #define MAKE_LINKS 0x0010 |
35 | #define VERBOSE_WGET 0x0020 | 36 | #define VERBOSE_WGET 0x0020 |
36 | 37 | ||
38 | class OProcess; | ||
39 | |||
37 | class Ipkg : public QObject | 40 | class Ipkg : public QObject |
38 | { | 41 | { |
39 | Q_OBJECT | 42 | Q_OBJECT |
40 | public: | 43 | public: |
41 | Ipkg(); | 44 | Ipkg(); |
42 | ~Ipkg(); | 45 | ~Ipkg(); |
43 | bool runIpkg( ); | 46 | bool runIpkg( ); |
44 | 47 | ||
@@ -46,29 +49,38 @@ public: | |||
46 | void setPackage( const char *pkg ) { package = pkg; } | 49 | void setPackage( const char *pkg ) { package = pkg; } |
47 | void setDestination( const char *dest ) { destination = dest; } | 50 | void setDestination( const char *dest ) { destination = dest; } |
48 | void setDestinationDir( const char *dir ) { destDir = dir; } | 51 | void setDestinationDir( const char *dir ) { destDir = dir; } |
49 | void setFlags( int fl ) { flags = fl; } | 52 | void setFlags( int fl ) { flags = fl; } |
50 | void setRuntimeDirectory( const char *dir ) { runtimeDir = dir; } | 53 | void setRuntimeDirectory( const char *dir ) { runtimeDir = dir; } |
51 | 54 | ||
52 | signals: | 55 | signals: |
53 | void outputText( const QString &text ); | 56 | void outputText( const QString &text ); |
57 | |||
58 | public slots: | ||
59 | void commandStdout(OProcess*, char *buffer, int buflen); | ||
60 | void commandStderr(OProcess*, char *buffer, int buflen); | ||
61 | void processFinished(); | ||
62 | |||
54 | 63 | ||
55 | private: | 64 | private: |
56 | bool createLinks; | 65 | bool createLinks; |
57 | QString option; | 66 | QString option; |
58 | QString package; | 67 | QString package; |
59 | QString destination; | 68 | QString destination; |
60 | QString destDir; | 69 | QString destDir; |
61 | int flags; | ||
62 | QString runtimeDir; | 70 | QString runtimeDir; |
71 | OProcess *proc; | ||
72 | int flags; | ||
73 | bool finished; | ||
63 | 74 | ||
64 | QList<QString> *dependantPackages; | 75 | QList<QString> *dependantPackages; |
65 | 76 | ||
66 | int executeIpkgCommand( QString &cmd, const QString option ); | 77 | int executeIpkgCommand( QStringList &cmd, const QString option ); |
67 | void removeStatusEntry(); | 78 | void removeStatusEntry(); |
68 | void linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ); | 79 | void linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ); |
69 | QStringList* getList( const QString &packageFilename, const QString &destDir ); | 80 | QStringList* getList( const QString &packageFilename, const QString &destDir ); |
70 | void processFileList( const QStringList *fileList, const QString &destDir ); | 81 | void processFileList( const QStringList *fileList, const QString &destDir ); |
71 | void processLinkDir( const QString &file, const QString &baseDir, const QString &destDir ); | 82 | void processLinkDir( const QString &file, const QString &baseDir, const QString &destDir ); |
83 | |||
72 | }; | 84 | }; |
73 | 85 | ||
74 | #endif | 86 | #endif |