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
@@ -55,16 +55,16 @@ 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 ) )
{
_name = QString( n );
@@ -117,9 +117,9 @@ void Package::setValue( QString n, QString t )
{
_fileName = t;
// }else if ( n == "Size")
// {
-//
+//
// }else if ( n == "MD5Sum")
// {
}else if ( n == "Description")
@@ -384,9 +384,9 @@ void Package::setDest( QString d )
}
void Package::setOn()
{
- _toProcess = true;
+ _toProcess = true;
}
bool Package::link()
{
@@ -400,10 +400,17 @@ 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) )
{
QTextStream t( &f );
@@ -414,9 +421,9 @@ void Package::parseIpkgFile( QString file)
}
f.close();
parsePackage( pack );
}
-
+
}
//QString Package::getPackageName()
//{
@@ -435,9 +442,9 @@ void Package::setName(QString n)
}
QDict<QString>* Package::getFields()
{
- return &_values;
+ return &_values;
}
QString Package::status()
{