summaryrefslogtreecommitdiff
authorandyq <andyq>2002-10-16 18:54:05 (UTC)
committer andyq <andyq>2002-10-16 18:54:05 (UTC)
commit63d3299669d5147e16c56b016b0ee3cca2127a75 (patch) (side-by-side diff)
tree7663e1822b6898791ae97a18b0355cf84bda4d36
parent3cb6b6fab8d06b1be8f8c39560db9d3d88ce3921 (diff)
downloadopie-63d3299669d5147e16c56b016b0ee3cca2127a75.zip
opie-63d3299669d5147e16c56b016b0ee3cca2127a75.tar.gz
opie-63d3299669d5147e16c56b016b0ee3cca2127a75.tar.bz2
Added ability to upgrade all packages
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp
index d5157eb..f8513e4 100644
--- a/noncore/settings/aqpkg/ipkg.cpp
+++ b/noncore/settings/aqpkg/ipkg.cpp
@@ -44,101 +44,105 @@ Ipkg :: ~Ipkg()
// Option is what we are going to do - install, upgrade, download
// package is the package name to install - either a fully qualified path and ipk
// file (if stored locally) or just the name of the package (for a network package)
// packageName is the package name - (for a network package this will be the same as
// package parameter)
// dest is the destination alias (from ipk.conf)
// destDir is the dir that the destination alias points to (used to link to root)
// flags is the ipkg options flags
// dir is the directory to run ipkg in (defaults to "")
bool Ipkg :: runIpkg( )
{
bool ret = false;
QDir::setCurrent( "/tmp" );
QString cmd = "";
if ( runtimeDir != "" )
{
cmd += "cd ";
cmd += runtimeDir;
cmd += " ; ";
}
cmd += "ipkg";
- if ( option != "update" && option != "download" )
+ if ( option != "update" && option != "download" && option != "upgrade" )
{
cmd += " -dest "+ destination;
cmd += " -force-defaults";
if ( flags & FORCE_DEPENDS )
cmd += " -force-depends";
if ( flags & FORCE_REINSTALL )
cmd += " -force-reinstall";
if ( flags & FORCE_REMOVE )
cmd += " -force-removal-of-essential-packages";
if ( flags & FORCE_OVERWRITE )
cmd += " -force-overwrite";
// Handle make links
// Rules - If make links is switched on, create links to root
// if destDir is NOT /
if ( flags & MAKE_LINKS )
{
// If destDir == / turn off make links as package is being insalled
// to root already.
if ( destDir == "/" )
flags ^= MAKE_LINKS;
}
}
#ifdef X86
cmd += " -f ";
cmd += IPKG_CONF;
#endif
- cmd += " " + option + " " + package + " 2>&1";
+ cmd += " " + option;
+ if ( option != "upgrade" )
+ cmd += " " + package;
+ cmd += " 2>&1";
qApp->processEvents();
// If we are removing packages and make links option is selected
// create the links
if ( option == "remove" )
{
createLinks = false;
if ( flags & MAKE_LINKS )
{
emit outputText( QString( "Removing symbolic links...\n" ) );
linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir );
}
}
emit outputText( cmd );
// Execute command
dependantPackages = new QList<QString>;
dependantPackages->setAutoDelete( true );
+
ret = executeIpkgCommand( cmd, option );
if ( option == "install" )
{
// If we are not removing packages and make links option is selected
// create the links
createLinks = true;
if ( flags & MAKE_LINKS )
{
emit outputText( " " );
emit outputText( QString( "Creating symbolic links for " )+ package );
linkPackage( Utils::getPackageNameFromIpkFilename( package ), destination, destDir );
// link dependant packages that were installed with this release
QString *pkg;
for ( pkg = dependantPackages->first(); pkg != 0; pkg = dependantPackages->next() )
{
emit outputText( " " );
emit outputText( QString( "Creating symbolic links for " )+ (*pkg) );
linkPackage( Utils::getPackageNameFromIpkFilename( *pkg ), destination, destDir );
}
}
}