summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp5
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
303void Ipkg::linkProcessFinished() 305void 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
317void Ipkg::linkCommandStdout(OProcess*, char *buffer, int buflen) 319void 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
371void Ipkg::commandStdout(OProcess*, char *buffer, int buflen) 375void 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
429void Ipkg :: abort() 433void 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
438void Ipkg :: linkPackage( const QString &packFileName, const QString &dest, const QString &destDir ) 442void 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;