-rw-r--r-- | noncore/settings/aqpkg/ipkg.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp index 17efda9..dd9e78d 100644 --- a/noncore/settings/aqpkg/ipkg.cpp +++ b/noncore/settings/aqpkg/ipkg.cpp | |||
@@ -277,48 +277,50 @@ int Ipkg :: executeIpkgLinkCommand( QStringList *cmd ) | |||
277 | { | 277 | { |
278 | // If one is already running - should never be but just to be safe | 278 | // If one is already running - should never be but just to be safe |
279 | if ( proc ) | 279 | if ( proc ) |
280 | { | 280 | { |
281 | delete proc; | 281 | delete proc; |
282 | proc = 0; | 282 | proc = 0; |
283 | } | 283 | } |
284 | 284 | ||
285 | // OK we're gonna use OProcess to run this thing | 285 | // OK we're gonna use OProcess to run this thing |
286 | proc = new OProcess(); | 286 | proc = new OProcess(); |
287 | aborted = false; | 287 | aborted = false; |
288 | 288 | ||
289 | // Connect up our slots | 289 | // Connect up our slots |
290 | connect(proc, SIGNAL(processExited(Opie::Core::OProcess*)), | 290 | connect(proc, SIGNAL(processExited(Opie::Core::OProcess*)), |
291 | this, SLOT( linkProcessFinished())); | 291 | this, SLOT( linkProcessFinished())); |
292 | connect(proc, SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)), | 292 | connect(proc, SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)), |
293 | this, SLOT(linkCommandStdout(Opie::Core::OProcess*,char*,int))); | 293 | this, SLOT(linkCommandStdout(Opie::Core::OProcess*,char*,int))); |
294 | 294 | ||
295 | *proc << *cmd; | 295 | *proc << *cmd; |
296 | 296 | ||
297 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) | 297 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) |
298 | { | 298 | { |
299 | emit outputText( tr("Couldn't start ipkg-link process" ) ); | 299 | emit outputText( tr("Couldn't start ipkg-link process" ) ); |
300 | } | 300 | } |
301 | |||
302 | return 0; | ||
301 | } | 303 | } |
302 | 304 | ||
303 | void Ipkg::linkProcessFinished() | 305 | void Ipkg::linkProcessFinished() |
304 | { | 306 | { |
305 | // Report that the link process succeeded/failed | 307 | // Report that the link process succeeded/failed |
306 | 308 | ||
307 | if ( error ) | 309 | if ( error ) |
308 | emit outputText( tr("Symbolic linking failed!\n") ); | 310 | emit outputText( tr("Symbolic linking failed!\n") ); |
309 | else | 311 | else |
310 | emit outputText( tr("Symbolic linking succeeded.\n") ); | 312 | emit outputText( tr("Symbolic linking succeeded.\n") ); |
311 | 313 | ||
312 | delete proc; | 314 | delete proc; |
313 | proc = 0; | 315 | proc = 0; |
314 | finished = true; | 316 | finished = true; |
315 | } | 317 | } |
316 | 318 | ||
317 | void Ipkg::linkCommandStdout(OProcess*, char *buffer, int buflen) | 319 | void Ipkg::linkCommandStdout(OProcess*, char *buffer, int buflen) |
318 | { | 320 | { |
319 | QString lineStr = buffer; | 321 | QString lineStr = buffer; |
320 | if ( lineStr[buflen-1] == '\n' ) | 322 | if ( lineStr[buflen-1] == '\n' ) |
321 | buflen --; | 323 | buflen --; |
322 | lineStr = lineStr.left( buflen ); | 324 | lineStr = lineStr.left( buflen ); |
323 | emit outputText( lineStr ); | 325 | emit outputText( lineStr ); |
324 | 326 | ||
@@ -345,48 +347,50 @@ int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString /*option*/ ) | |||
345 | aborted = false; | 347 | aborted = false; |
346 | 348 | ||
347 | 349 | ||
348 | // Connect up our slots | 350 | // Connect up our slots |
349 | connect(proc, SIGNAL(processExited(Opie::Core::OProcess*)), | 351 | connect(proc, SIGNAL(processExited(Opie::Core::OProcess*)), |
350 | this, SLOT( processFinished())); | 352 | this, SLOT( processFinished())); |
351 | 353 | ||
352 | connect(proc, SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)), | 354 | connect(proc, SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)), |
353 | this, SLOT(commandStdout(Opie::Core::OProcess*,char*,int))); | 355 | this, SLOT(commandStdout(Opie::Core::OProcess*,char*,int))); |
354 | 356 | ||
355 | connect(proc, SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)), | 357 | connect(proc, SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)), |
356 | this, SLOT(commandStderr(Opie::Core::OProcess*,char*,int))); | 358 | this, SLOT(commandStderr(Opie::Core::OProcess*,char*,int))); |
357 | 359 | ||
358 | for ( QStringList::Iterator it = cmd.begin(); it != cmd.end(); ++it ) | 360 | for ( QStringList::Iterator it = cmd.begin(); it != cmd.end(); ++it ) |
359 | { | 361 | { |
360 | *proc << (*it).latin1(); | 362 | *proc << (*it).latin1(); |
361 | } | 363 | } |
362 | 364 | ||
363 | // Start the process going | 365 | // Start the process going |
364 | finished = false; | 366 | finished = false; |
365 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) | 367 | if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) |
366 | { | 368 | { |
367 | emit outputText( tr("Couldn't start ipkg process" ) ); | 369 | emit outputText( tr("Couldn't start ipkg process" ) ); |
368 | } | 370 | } |
371 | |||
372 | return 0; | ||
369 | } | 373 | } |
370 | 374 | ||
371 | void Ipkg::commandStdout(OProcess*, char *buffer, int buflen) | 375 | void Ipkg::commandStdout(OProcess*, char *buffer, int buflen) |
372 | { | 376 | { |
373 | QString lineStr = buffer; | 377 | QString lineStr = buffer; |
374 | if ( lineStr[buflen-1] == '\n' ) | 378 | if ( lineStr[buflen-1] == '\n' ) |
375 | buflen --; | 379 | buflen --; |
376 | lineStr = lineStr.left( buflen ); | 380 | lineStr = lineStr.left( buflen ); |
377 | emit outputText( lineStr ); | 381 | emit outputText( lineStr ); |
378 | 382 | ||
379 | // check if we are installing dependant packages | 383 | // check if we are installing dependant packages |
380 | if ( option == "install" || option == "reinstall" ) | 384 | if ( option == "install" || option == "reinstall" ) |
381 | { | 385 | { |
382 | // Need to keep track of any dependant packages that get installed | 386 | // Need to keep track of any dependant packages that get installed |
383 | // so that we can create links to them as necessary | 387 | // so that we can create links to them as necessary |
384 | if ( lineStr.startsWith( "Installing " ) ) | 388 | if ( lineStr.startsWith( "Installing " ) ) |
385 | { | 389 | { |
386 | int start = lineStr.find( " " ) + 1; | 390 | int start = lineStr.find( " " ) + 1; |
387 | int end = lineStr.find( " ", start ); | 391 | int end = lineStr.find( " ", start ); |
388 | QString *package = new QString( lineStr.mid( start, end-start ) ); | 392 | QString *package = new QString( lineStr.mid( start, end-start ) ); |
389 | dependantPackages->append( package ); | 393 | dependantPackages->append( package ); |
390 | } | 394 | } |
391 | } | 395 | } |
392 | else if ( option == "remove" && !( flags & FORCE_DEPENDS ) && | 396 | else if ( option == "remove" && !( flags & FORCE_DEPENDS ) && |
@@ -416,48 +420,49 @@ void Ipkg::processFinished() | |||
416 | // to workaround an ipkg bug which stops reinstall to a different location | 420 | // to workaround an ipkg bug which stops reinstall to a different location |
417 | 421 | ||
418 | if ( !error && option == "remove" ) | 422 | if ( !error && option == "remove" ) |
419 | removeStatusEntry(); | 423 | removeStatusEntry(); |
420 | 424 | ||
421 | delete proc; | 425 | delete proc; |
422 | proc = 0; | 426 | proc = 0; |
423 | finished = true; | 427 | finished = true; |
424 | 428 | ||
425 | emit ipkgFinished(); | 429 | emit ipkgFinished(); |
426 | } | 430 | } |
427 | 431 | ||
428 | 432 | ||
429 | void Ipkg :: abort() | 433 | void Ipkg :: abort() |
430 | { | 434 | { |
431 | if ( proc ) | 435 | if ( proc ) |
432 | { | 436 | { |
433 | proc->kill(); | 437 | proc->kill(); |
434 | aborted = true; | 438 | aborted = true; |
435 | } | 439 | } |
436 | } | 440 | } |
437 | 441 | ||
438 | void Ipkg :: linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ) | 442 | void Ipkg :: linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ) |
439 | { | 443 | { |
444 | Q_CONST_UNUSED( destDir ) | ||
440 | if ( dest == "root" || dest == "/" ) | 445 | if ( dest == "root" || dest == "/" ) |
441 | return; | 446 | return; |
442 | 447 | ||
443 | if( option == "remove" || option == "reinstall" || option == "upgrade" ) | 448 | if( option == "remove" || option == "reinstall" || option == "upgrade" ) |
444 | { | 449 | { |
445 | QStringList commands; | 450 | QStringList commands; |
446 | 451 | ||
447 | if ( runtimeDir != "" ) | 452 | if ( runtimeDir != "" ) |
448 | { | 453 | { |
449 | commands << "cd "; | 454 | commands << "cd "; |
450 | commands << runtimeDir; | 455 | commands << runtimeDir; |
451 | commands << ";"; | 456 | commands << ";"; |
452 | } | 457 | } |
453 | commands << "ipkg-link" << "remove" << packFileName; | 458 | commands << "ipkg-link" << "remove" << packFileName; |
454 | executeIpkgLinkCommand( &commands ); | 459 | executeIpkgLinkCommand( &commands ); |
455 | } | 460 | } |
456 | 461 | ||
457 | if( option == "install" || option == "reinstall" || option == "upgrade" ) | 462 | if( option == "install" || option == "reinstall" || option == "upgrade" ) |
458 | { | 463 | { |
459 | QStringList commands; | 464 | QStringList commands; |
460 | if ( runtimeDir != "" ) | 465 | if ( runtimeDir != "" ) |
461 | { | 466 | { |
462 | commands << "cd "; | 467 | commands << "cd "; |
463 | commands << runtimeDir; | 468 | commands << runtimeDir; |