summaryrefslogtreecommitdiff
authorandyq <andyq>2002-10-25 14:37:28 (UTC)
committer andyq <andyq>2002-10-25 14:37:28 (UTC)
commitf4007b261a7a4dc9672a1806be50ea16ccfc84f1 (patch) (side-by-side diff)
tree5a2469d149be879bd221a1d1f07d9cab7cab5a49
parent3421736c248c6ca7171bafdf3af9e2edf94eb593 (diff)
downloadopie-f4007b261a7a4dc9672a1806be50ea16ccfc84f1.zip
opie-f4007b261a7a4dc9672a1806be50ea16ccfc84f1.tar.gz
opie-f4007b261a7a4dc9672a1806be50ea16ccfc84f1.tar.bz2
Hopefully handles upgrading to newer packages correctly
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/installdlgimpl.cpp7
-rw-r--r--noncore/settings/aqpkg/installdlgimpl.h2
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp8
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.cpp4
4 files changed, 13 insertions, 8 deletions
diff --git a/noncore/settings/aqpkg/installdlgimpl.cpp b/noncore/settings/aqpkg/installdlgimpl.cpp
index f5aef94..83f983a 100644
--- a/noncore/settings/aqpkg/installdlgimpl.cpp
+++ b/noncore/settings/aqpkg/installdlgimpl.cpp
@@ -81,25 +81,25 @@ InstallDlgImpl::InstallDlgImpl( vector<InstallData> &packageList, DataManager *d
{
InstallData item = *it;
if ( item.option == "I" )
{
installList.push_back( item );
install += " " + item.packageName + "\n";
}
else if ( item.option == "D" )
{
removeList.push_back( item );
remove += " " + item.packageName + "\n";
}
- else if ( item.option == "U" )
+ else if ( item.option == "U" || item.option == "R" )
{
updateList.push_back( item );
upgrade += " " + item.packageName + "\n";
}
}
output->setText( remove + install + upgrade );
}
InstallDlgImpl::InstallDlgImpl( Ipkg *ipkg, QString initialText, QWidget *parent, const char *name, bool modal, WFlags fl )
: InstallDlg( parent, name, modal, fl )
{
@@ -199,27 +199,30 @@ void InstallDlgImpl :: installSelected()
pIpkg->setOption( "install" );
pIpkg->setDestination( dest );
pIpkg->setDestinationDir( destDir );
pIpkg->setFlags( instFlags );
for ( it = installList.begin() ; it != installList.end() ; ++it )
{
pIpkg->setPackage( it->packageName );
pIpkg->runIpkg();
}
flags |= FORCE_REINSTALL;
- pIpkg->setOption( "reinstall" );
for ( it = updateList.begin() ; it != updateList.end() ; ++it )
{
+ if ( it->option == "R" )
+ pIpkg->setOption( "reinstall" );
+ else
+ pIpkg->setOption( "upgrade" );
pIpkg->setDestination( it->destination->getDestinationName() );
pIpkg->setDestinationDir( it->destination->getDestinationPath() );
pIpkg->setPackage( it->packageName );
int tmpFlags = flags;
if ( it->destination->linkToRoot() && it->recreateLinks )
tmpFlags |= MAKE_LINKS;
pIpkg->setFlags( tmpFlags );
pIpkg->runIpkg();
}
delete pIpkg;
diff --git a/noncore/settings/aqpkg/installdlgimpl.h b/noncore/settings/aqpkg/installdlgimpl.h
index 6716ced..9819b2e 100644
--- a/noncore/settings/aqpkg/installdlgimpl.h
+++ b/noncore/settings/aqpkg/installdlgimpl.h
@@ -19,25 +19,25 @@
#include <vector>
using namespace std;
#include <qstring.h>
#include "ipkg.h"
#include "install.h"
class InstallData
{
public:
- QString option; // I - install, D - delete, U - upgrade
+ QString option; // I - install, D - delete, R- reinstall U - upgrade
QString packageName;
Destination *destination;
bool recreateLinks;
};
class InstallDlgImpl : public InstallDlg
{
public:
InstallDlgImpl( vector<InstallData> &packageList, DataManager *dataManager, QWidget * parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0 );
InstallDlgImpl( Ipkg *ipkg, QString initialText, QWidget * parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0 );
~InstallDlgImpl();
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp
index 368548b..731a336 100644
--- a/noncore/settings/aqpkg/ipkg.cpp
+++ b/noncore/settings/aqpkg/ipkg.cpp
@@ -54,30 +54,28 @@ 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" && option != "upgrade" )
+ cmd += "ipkg -force-defaults";
+ if ( option != "update" && option != "download" )
{
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
@@ -92,25 +90,25 @@ bool Ipkg :: runIpkg( )
}
#ifdef X86
cmd += " -f ";
cmd += IPKG_CONF;
#endif
if ( option == "reinstall" )
cmd += " install";
else
cmd += " " + option;
- if ( option != "upgrade" )
+ if ( package != "" )
cmd += " " + package;
cmd += " 2>&1";
if ( package != "" )
emit outputText( QString( "Dealing with package " ) + package );
qApp->processEvents();
// If we are removing packages and make links option is selected
// create the links
if ( option == "remove" || option == "reinstall" )
diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp
index a374266..3971aea 100644
--- a/noncore/settings/aqpkg/networkpkgmgr.cpp
+++ b/noncore/settings/aqpkg/networkpkgmgr.cpp
@@ -550,25 +550,29 @@ InstallData NetworkPackageManager :: dealWithItem( QCheckListItem *item )
break;
}
}
else
{
// item.option = stickyOption;
}
// Check if we are reinstalling the same version
if ( p->getVersion() != p->getInstalledVersion() )
item.recreateLinks = true;
else
+ {
+ if ( item.option == "U" )
+ item.option = "R";
item.recreateLinks = false;
+ }
// User hit cancel (on dlg - assume remove)
return item;
}
}
void NetworkPackageManager :: displayText( const QString &t )
{
cout << t << endl;
}