summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/oipkg/package.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/noncore/unsupported/oipkg/package.cpp b/noncore/unsupported/oipkg/package.cpp
index 7aaa240..1054a1d 100644
--- a/noncore/unsupported/oipkg/package.cpp
+++ b/noncore/unsupported/oipkg/package.cpp
@@ -56,14 +56,14 @@ void Package::init( PackageManagerSettings *s )
Package::Package( QStringList pack, PackageManagerSettings *s , QObject *parent, const char *name )
: QObject(parent,name)
-{
+{
init(s);
parsePackage( pack );
}
Package::Package( QString n, PackageManagerSettings *s, QObject *parent, const char *name )
: QObject(parent,name)
-{
+{
init(s);
if ( !QFile::exists( n ) )
{
@@ -118,7 +118,7 @@ void Package::setValue( QString n, QString t )
_fileName = t;
// }else if ( n == "Size")
// {
-//
+//
// }else if ( n == "MD5Sum")
// {
@@ -385,7 +385,7 @@ void Package::setDest( QString d )
void Package::setOn()
{
- _toProcess = true;
+ _toProcess = true;
}
bool Package::link()
@@ -401,8 +401,15 @@ void Package::setLink(bool b)
void Package::parseIpkgFile( QString file)
{
- system("tar xzf "+file+" -C /tmp");
- system("tar xzf /tmp/control.tar.gz -C /tmp");
+// 20020830
+// a quick hack to make oipkg understand the new ipk format
+// neu: ar pf PACKAGE control.tar.gz | tar xfOz - ./control > /tmp/control
+ if (! system("ar pf "+file+" control.tar.gz | tar xfOz - ./control > /tmp/control") )
+ {
+//#old tar ipk format
+ system("tar xzf "+file+" -C /tmp");
+ system("tar xzf /tmp/control.tar.gz -C /tmp");
+ }
QFile f("/tmp/control");
if ( f.open(IO_ReadOnly) )
{
@@ -415,7 +422,7 @@ void Package::parseIpkgFile( QString file)
f.close();
parsePackage( pack );
}
-
+
}
//QString Package::getPackageName()
@@ -436,7 +443,7 @@ void Package::setName(QString n)
QDict<QString>* Package::getFields()
{
- return &_values;
+ return &_values;
}
QString Package::status()