summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/packagelist.cpp2
-rw-r--r--noncore/unsupported/oipkg/pmipkg.cpp36
2 files changed, 20 insertions, 18 deletions
diff --git a/noncore/unsupported/oipkg/packagelist.cpp b/noncore/unsupported/oipkg/packagelist.cpp
index f6c4c37..844f43f 100644
--- a/noncore/unsupported/oipkg/packagelist.cpp
+++ b/noncore/unsupported/oipkg/packagelist.cpp
@@ -23,97 +23,97 @@ PackageList::PackageList(QObject *parent, const char *name)
: QObject(parent,name), packageIter( packageList )
{
empty=true;
if (!packageListAll) packageListAll = new QDict<Package>();
packageListAllRefCount++;
sections << "All";
subSections.insert("All", new QStringList() );
QStringList *ss = subSections["All"];
*ss << "All";
aktSection = "All";
aktSubSection = "All";
}
PackageList::PackageList( PackageManagerSettings* s, QObject *parent, const char *name)
: QObject(parent,name), packageIter( packageList )
{
settings = s;
PackageList(parent, name);
}
PackageList::~PackageList()
{
if (--packageListAllRefCount < 1 ) delete packageListAll;
}
/** Inserts a package into the list */
void PackageList::insertPackage( Package* pack )
{
if (!pack) return;
Package* p = packageListAll->find( pack->name() );
if ( p )
{
if ( (p->version() == pack->version())
// && (p->dest() == pack->dest())
)
{
p->copyValues( pack );
delete pack;
pack = p;
} else {
QDict<Package> *packver = p->getOtherVersions();
// p->setName( pack->name()+"["+p->version()+"]" );
if (!packver)
{
packver = new QDict<Package>();
packver->insert( pack->name(), p );
p->setOtherVersions( packver );
}
- pack->setName( pack->name()+"["+pack->version()+"]" );
+ pack->setName( pack->name() );//+"["+pack->version()+"]" );
pack->setOtherVersions( packver );
packver->insert( pack->name(), pack );
packageListAll->insert( pack->name(), pack );
packageList.insert( pack->name(), pack );
origPackageList.insert( pack->name(), pack );
}
}else{
packageListAll->insert( pack->name(), pack );
packageList.insert( pack->name(), pack );
origPackageList.insert( pack->name(), pack );
};
empty=false;
updateSections( pack );
}
void PackageList::filterPackages( QString f )
{
packageList.clear();
QDictIterator<Package> filterIter( origPackageList );
filterIter.toFirst();
Package *pack= filterIter.current() ;
while ( pack )
{
if (
((aktSection=="All")||(pack->section()==aktSection)) &&
((aktSubSection=="All")||(pack->subSection()==aktSubSection)) &&
pack->name().contains( f )
)
{
packageList.insert( pack->name(), pack );
}
++filterIter;
pack = filterIter.current();
}
}
Package* PackageList::find( QString n )
{
return packageList.find( n );
}
Package* PackageList::first()
{
packageIter.toFirst();
return packageIter.current();
}
Package* PackageList::next()
diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp
index 2ed86ee..bffad15 100644
--- a/noncore/unsupported/oipkg/pmipkg.cpp
+++ b/noncore/unsupported/oipkg/pmipkg.cpp
@@ -28,114 +28,118 @@
#include <qmessagebox.h>
#include <qprogressbar.h>
#include <qpushbutton.h>
#include <qlayout.h>
#include <stdlib.h>
#include <unistd.h>
#include "mainwindow.h"
//#define OPROCESS
PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlags f )
: QObject ( p )
{
settings = s;
runwindow = new RunWindow( p, name, true, f );
#ifdef OPROCESS
ipkgProcess = new OProcess();
connect ( ipkgProcess, SIGNAL(receivedStdout(OProcess*,char*,int)),
this, SLOT(getIpkgOutput(OProcess*,char*,int)));
connect ( ipkgProcess, SIGNAL(receivedStderr(OProcess*,char*,int)),
this, SLOT(getIpkgOutput(OProcess*,char*,int)));
installDialog = 0;
#endif
}
PmIpkg::~PmIpkg()
{
#ifdef OPROCESS
delete ipkgProcess;
#endif
}
bool PmIpkg::runIpkg(const QString& args, const QString& dest )
{
bool ret=false;
QDir::setCurrent("/tmp");
QString cmd = "/usr/bin/ipkg ";
#ifdef OPROCESS
ipkgProcess->kill();
ipkgProcess->clearArguments();
*ipkgProcess << "/usr/bin/ipkg ";
cmd = "";
#endif
pvDebug( 3,"PmIpkg::runIpkg got dest="+dest);
- if ( dest == "" )
- cmd += " -dest "+settings->getDestinationName();
- else
- cmd += " -dest "+ dest;
+ if (!args.contains("update"))
+ {
+ if ( dest == "" )
+ cmd += " -dest "+settings->getDestinationName();
+ else
+ cmd += " -dest "+ dest;
- cmd += " -force-defaults ";
+ cmd += " -force-defaults ";
- if (installDialog && installDialog->_force_depends)
- {
- if (installDialog->_force_depends->isChecked())
- cmd += " -force-depends ";
- if (installDialog->_force_reinstall->isChecked())
- cmd += " -force-reinstall ";
- if (installDialog->_force_remove->isChecked())
- cmd += " -force-removal-of-essential-packages ";
- }
+ if ( installDialog && installDialog->_force_depends )
+ {
+ if (installDialog->_force_depends->isChecked())
+ cmd += " -force-depends ";
+ if (installDialog->_force_reinstall->isChecked())
+ cmd += " -force-reinstall ";
+ if (installDialog->_force_remove->isChecked())
+ cmd += " -force-removal-of-essential-packages ";
+ }
+ } //!args.contains("update")
out( "Starting to "+ args+"\n");
+ qApp->processEvents();
cmd += args;
out( "running:\n"+cmd+"\n" );
pvDebug(2,"running:"+cmd);
#ifdef OPROCESS
*ipkgProcess << args;
out( "running:\n" + cmd);
*ipkgProcess << cmd;
//debug
delete ipkgProcess;
ipkgProcess = new OProcess();
ipkgProcess->clearArguments();
*ipkgProcess << "/bin/ls ";
//debug
QValueList<QCString> a = ipkgProcess->args();
QValueList<QCString>::Iterator it;
for( it = a.begin(); it != a.end(); ++it )
{
out( *it );
cmd += *it;
}
pvDebug(2,"running:"+cmd);
qApp->processEvents();
// sleep(1);
ret = ipkgProcess->start(OProcess::NotifyOnExit,OProcess::AllOutput);
if ( !ret ) {
pvDebug(2,"Could not execute '" + cmd);
out("\nError while executing "+ cmd+"\n\n");
out("\nError while executing\n\n");
// return false;
}
while ( ipkgProcess->isRunning() )
{
out(".");
pvDebug(7,"wait for oprocess to terminate");
qApp->processEvents();
};
#else
qApp->processEvents();
FILE *fp;
char line[130];
QString lineStr, lineStrOld;
sleep(1);
cmd +=" 2>&1";
fp = popen( (const char *) cmd, "r");
if ( fp == NULL ) {
@@ -388,99 +392,97 @@ void PmIpkg::install()
const char *rd = rds.latin1();
const char *ld = lds.latin1();
pvDebug(4, "linking: "+rds+" -> "+lds );
symlink( rd, ld );
}
if ( runIpkg("install " + to_install.at(i)->installName(), to_install.at(i)->dest() ))
{
runwindow->progress->setProgress( to_install.at(i)->size().toInt() + runwindow->progress->progress());
to_install.at(i)->processed();
linkOpp = createLink;
if ( to_install.at(i)->link() )
makeLinks( to_install.at(i) );
// to_install.take( i );
out("\n");
}else{
out(tr("Error while installing")+to_install.at(i)->name()+"\n");
linkOpp = createLink;
if ( to_install.at(i)->link() )
makeLinks( to_install.at(i) );
}
}
out("\n");
to_install.clear();
}
void PmIpkg::createLinks( const QString &dest )
{
pvDebug(2,"PmIpkg::createLinks "+dest);
linkOpp=createLink;
QString url = settings->getDestinationUrlByName( dest );
url = url==""?dest:url;
processLinkDir( "/opt", url );
processLinkDir( "/usr", url );
}
void PmIpkg::removeLinks( const QString &dest )
{
pvDebug(2,"PmIpkg::removeLinks "+dest);
linkOpp=removeLink;
QString url = settings->getDestinationUrlByName( dest );
url = url==""?dest:url;
processLinkDir( "/opt", url );
processLinkDir( "/usr", url );
}
void PmIpkg::update()
{
show();
- if ( runIpkg( "update" ) )
- runwindow->close();
- else out("An error occurred!\nPlease check the log.");
+ runIpkg( "update" );
}
void PmIpkg::out( QString o )
{
runwindow->outPut->append(o);
runwindow->outPut->setCursorPosition(runwindow->outPut->numLines() + 1,0,FALSE);
}
void PmIpkg::show()
{
if (!runwindow->isVisible())
{
runwindow->showMaximized();
runwindow->show();
}
runwindow->outPut->setText("");
}
void PmIpkg::installFile(const QString &fileName, const QString &dest)
{
to_install.clear();
to_remove.clear();
pvDebug( 2,"PmIpkg::installFile "+ fileName);
Package *p = new Package(fileName,settings);
if ( dest!="") p->setDest( dest );
to_install.append( p );
commit();
delete p;
}
void PmIpkg::removeFile(const QString &fileName, const QString &dest)
{
to_install.clear();
to_remove.clear();
pvDebug( 2,"PmIpkg::removeFile "+ fileName);
Package *p = new Package(fileName,settings);
if ( dest!="") p->setDest( dest );
to_remove.append( p );
commit();
delete p;
}