Diffstat (limited to 'noncore/unsupported/oipkg/pmipkg.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/unsupported/oipkg/pmipkg.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/noncore/unsupported/oipkg/pmipkg.cpp b/noncore/unsupported/oipkg/pmipkg.cpp index 2559a51..be9d6da 100644 --- a/noncore/unsupported/oipkg/pmipkg.cpp +++ b/noncore/unsupported/oipkg/pmipkg.cpp | |||
@@ -21,25 +21,24 @@ | |||
21 | #include <qlayout.h> | 21 | #include <qlayout.h> |
22 | 22 | ||
23 | #include <stdlib.h> | 23 | #include <stdlib.h> |
24 | #include <unistd.h> | 24 | #include <unistd.h> |
25 | 25 | ||
26 | #include "mainwindow.h" | 26 | #include "mainwindow.h" |
27 | 27 | ||
28 | 28 | ||
29 | PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlags f ) | 29 | PmIpkg::PmIpkg( PackageManagerSettings* s, QWidget* p, const char * name, WFlags f ) |
30 | : QObject ( p ) | 30 | : QObject ( p ) |
31 | { | 31 | { |
32 | settings = s; | 32 | settings = s; |
33 | runwindowopen = false; | ||
34 | runwindow = new RunWindow( p, name, true, f ); | 33 | runwindow = new RunWindow( p, name, true, f ); |
35 | } | 34 | } |
36 | 35 | ||
37 | PmIpkg::~PmIpkg() | 36 | PmIpkg::~PmIpkg() |
38 | { | 37 | { |
39 | } | 38 | } |
40 | 39 | ||
41 | //#define PROC | 40 | //#define PROC |
42 | #define SYSTEM | 41 | #define SYSTEM |
43 | int PmIpkg::runIpkg(const QString& args, const QString& dest ) | 42 | int PmIpkg::runIpkg(const QString& args, const QString& dest ) |
44 | { | 43 | { |
45 | pvDebug(2,"PmIpkg::runIpkg "+args); | 44 | pvDebug(2,"PmIpkg::runIpkg "+args); |
@@ -64,25 +63,25 @@ int PmIpkg::runIpkg(const QString& args, const QString& dest ) | |||
64 | cmd += " -force-depends "; | 63 | cmd += " -force-depends "; |
65 | if (_force_reinstall->isChecked()) | 64 | if (_force_reinstall->isChecked()) |
66 | cmd += " -force-reinstall "; | 65 | cmd += " -force-reinstall "; |
67 | if (_force_remove->isChecked()) | 66 | if (_force_remove->isChecked()) |
68 | cmd += " -force-removal-of-essential-packages "; | 67 | cmd += " -force-removal-of-essential-packages "; |
69 | } | 68 | } |
70 | 69 | ||
71 | out( "<hr><br>Starting to "+ args+"<br>\n"); | 70 | out( "<hr><br>Starting to "+ args+"<br>\n"); |
72 | cmd += args; | 71 | cmd += args; |
73 | int r = 0; | 72 | int r = 0; |
74 | #ifdef PROC | 73 | #ifdef PROC |
75 | QString o = "start"; | 74 | QString o = "start"; |
76 | Process *ipkg = new Process( "ls");//cmd ); | 75 | Process *ipkg = new Process( cmd ); |
77 | out( "running:<br>\n"+ipkg->arguments().join(" ")+"<br>\n" ); | 76 | out( "running:<br>\n"+ipkg->arguments().join(" ")+"<br>\n" ); |
78 | QString description; | 77 | QString description; |
79 | ipkg->exec("",o); | 78 | ipkg->exec("",o); |
80 | // out( o ); | 79 | // out( o ); |
81 | #endif | 80 | #endif |
82 | #ifdef SYSTEM | 81 | #ifdef SYSTEM |
83 | out( "running:<br>\n"+cmd+"<br>\n" ); | 82 | out( "running:<br>\n"+cmd+"<br>\n" ); |
84 | QString redirect = "/tmp/oipkg.pipe"; | 83 | QString redirect = "/tmp/oipkg.pipe"; |
85 | cmd += " 2>&1 | tee "+redirect+" 2>&1"; | 84 | cmd += " 2>&1 | tee "+redirect+" 2>&1"; |
86 | pvDebug(2, "running >"+cmd+"<"); | 85 | pvDebug(2, "running >"+cmd+"<"); |
87 | r = system(cmd.latin1()); | 86 | r = system(cmd.latin1()); |
88 | QFile f( redirect ); | 87 | QFile f( redirect ); |
@@ -151,44 +150,44 @@ void PmIpkg::processFileList( QStringList *fileList, QString d ) | |||
151 | if (!fileList) return; | 150 | if (!fileList) return; |
152 | for (uint i=0; i < fileList->count(); i++) | 151 | for (uint i=0; i < fileList->count(); i++) |
153 | { | 152 | { |
154 | QString dest = settings->getDestinationUrlByName( d ); | 153 | QString dest = settings->getDestinationUrlByName( d ); |
155 | dest = dest==""?d:dest; | 154 | dest = dest==""?d:dest; |
156 | processLinkDir( (*fileList)[i], dest ); | 155 | processLinkDir( (*fileList)[i], dest ); |
157 | } | 156 | } |
158 | } | 157 | } |
159 | 158 | ||
160 | 159 | ||
161 | void PmIpkg::processLinkDir( QString file, QString dest ) | 160 | void PmIpkg::processLinkDir( QString file, QString dest ) |
162 | { | 161 | { |
163 | pvDebug( 7,"PmIpkg::processLinkDir "+file+" to "+ dest); | 162 | pvDebug( 4,"PmIpkg::processLinkDir "+file+" to "+ dest); |
164 | if (linkOpp==createLink) pvDebug( 2,"opp: createLink"); | 163 | if (linkOpp==createLink) pvDebug( 4,"opp: createLink"); |
165 | if (linkOpp==removeLink) pvDebug( 2,"opp:removeLink"); | 164 | if (linkOpp==removeLink) pvDebug( 4,"opp: removeLink"); |
166 | if ( dest == "???" || dest == "" ) return; | 165 | if ( dest == "???" || dest == "" ) return; |
167 | QString destFile = file; | 166 | QString destFile = file; |
168 | file = dest+"/"+file; | 167 | file = dest+"/"+file; |
169 | if (file == dest) return; | 168 | if (file == dest) return; |
170 | QFileInfo fileInfo( file ); | 169 | QFileInfo fileInfo( file ); |
171 | if ( fileInfo.isDir() ) | 170 | if ( fileInfo.isDir() ) |
172 | { | 171 | { |
172 | pvDebug(4, "process dir "+file); | ||
173 | QDir destDir( destFile ); | 173 | QDir destDir( destFile ); |
174 | if (linkOpp==createLink) destDir.mkdir( destFile, true ); | 174 | if (linkOpp==createLink) destDir.mkdir( destFile, true ); |
175 | QDir d( file ); | 175 | QDir d( file ); |
176 | d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks ); | 176 | d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks ); |
177 | const QFileInfoList *list = d.entryInfoList(); | 177 | const QFileInfoList *list = d.entryInfoList(); |
178 | QFileInfoListIterator it( *list ); | 178 | QFileInfoListIterator it( *list ); |
179 | QFileInfo *fi; | 179 | QFileInfo *fi; |
180 | while ( (fi=it.current()) ) | 180 | while ( (fi=it.current()) ) |
181 | { | 181 | { |
182 | pvDebug(4, "process dir "+fi->absFilePath()); | ||
183 | processLinkDir( fi->absFilePath(), dest ); | 182 | processLinkDir( fi->absFilePath(), dest ); |
184 | ++it; | 183 | ++it; |
185 | } | 184 | } |
186 | // if (linkOpp==removeLink) | 185 | // if (linkOpp==removeLink) |
187 | // { | 186 | // { |
188 | // pvDebug(2,"remove destDir "+ destFile ); | 187 | // pvDebug(2,"remove destDir "+ destFile ); |
189 | // destDir.remove( destFile, true ); | 188 | // destDir.remove( destFile, true ); |
190 | // } | 189 | // } |
191 | } else | 190 | } else |
192 | if ( fileInfo.isFile() ) | 191 | if ( fileInfo.isFile() ) |
193 | { | 192 | { |
194 | const char *instFile = strdup( (file).ascii() ); | 193 | const char *instFile = strdup( (file).ascii() ); |
@@ -217,32 +216,33 @@ void PmIpkg::loadList( PackageList pl ) | |||
217 | if ( pack && (pack->name() != "") && pack) | 216 | if ( pack && (pack->name() != "") && pack) |
218 | { | 217 | { |
219 | if ( pack->toInstall() ) | 218 | if ( pack->toInstall() ) |
220 | to_install.append( pack ); | 219 | to_install.append( pack ); |
221 | if ( pack->toRemove() ) | 220 | if ( pack->toRemove() ) |
222 | to_remove.append( pack ); | 221 | to_remove.append( pack ); |
223 | } | 222 | } |
224 | } | 223 | } |
225 | } | 224 | } |
226 | 225 | ||
227 | void PmIpkg::commit( PackageList pl ) | 226 | void PmIpkg::commit( PackageList pl ) |
228 | { | 227 | { |
229 | sizecount = 0; | 228 | int sizecount = 0; |
230 | QString rem="<b>"+tr("To remove:")+"</b><br>\n"; | 229 | // QString rem="<b>"+tr("To remove:")+"</b><br>\n"; |
231 | QString inst="<b>"+tr("To install:")+"</b><br>\n"; | 230 | // QString inst="<b>"+tr("To install:")+"</b><br>\n"; |
232 | loadList(pl); | 231 | loadList(pl); |
233 | for (uint i=0; i < to_remove.count(); i++) | 232 | for (uint i=0; i < to_remove.count(); i++) |
234 | sizecount += 1; | 233 | sizecount += 1; |
235 | for (uint i=0; i < to_install.count(); i++) | 234 | for (uint i=0; i < to_install.count(); i++) |
236 | sizecount += to_install.at(i)->size().toInt(); | 235 | sizecount += to_install.at(i)->size().toInt(); |
236 | runwindow->progress->setTotalSteps(sizecount); | ||
237 | startDialog(); | 237 | startDialog(); |
238 | } | 238 | } |
239 | 239 | ||
240 | void PmIpkg::startDialog() | 240 | void PmIpkg::startDialog() |
241 | { | 241 | { |
242 | installDialog = new QDialog(0,0,true); | 242 | installDialog = new QDialog(0,0,true); |
243 | QGridLayout *RunWindowLayout = new QGridLayout( installDialog ); | 243 | QGridLayout *RunWindowLayout = new QGridLayout( installDialog ); |
244 | RunWindowLayout->setSpacing( 2 ); | 244 | RunWindowLayout->setSpacing( 2 ); |
245 | RunWindowLayout->setMargin( 2 ); | 245 | RunWindowLayout->setMargin( 2 ); |
246 | 246 | ||
247 | PackageListView *plv = new PackageListView(installDialog, "install",settings); | 247 | PackageListView *plv = new PackageListView(installDialog, "install",settings); |
248 | plv->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding, plv->sizePolicy().mayShrinkVertically()) ); | 248 | plv->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding, plv->sizePolicy().mayShrinkVertically()) ); |
@@ -312,25 +312,25 @@ void PmIpkg::remove() | |||
312 | if ( it->link() )fileList = getList( it->name(), it->dest() ); | 312 | if ( it->link() )fileList = getList( it->name(), it->dest() ); |
313 | if ( runIpkg("remove " + it->name(), it->dest() ) == 0) | 313 | if ( runIpkg("remove " + it->name(), it->dest() ) == 0) |
314 | { | 314 | { |
315 | runwindow->progress->setProgress( 1 + runwindow->progress->progress() ); | 315 | runwindow->progress->setProgress( 1 + runwindow->progress->progress() ); |
316 | linkOpp = removeLink; | 316 | linkOpp = removeLink; |
317 | if ( it->link() ) | 317 | if ( it->link() ) |
318 | { | 318 | { |
319 | out( "<br>removing links<br>" ); | 319 | out( "<br>removing links<br>" ); |
320 | out( "for package "+it->name()+" in "+it->dest()+"<br>" ); | 320 | out( "for package "+it->name()+" in "+it->dest()+"<br>" ); |
321 | processFileList( fileList, it->dest() ); | 321 | processFileList( fileList, it->dest() ); |
322 | } | 322 | } |
323 | it->processed(); | 323 | it->processed(); |
324 | 324 | // to_install.take( it ); | |
325 | out("<br><hr>"); | 325 | out("<br><hr>"); |
326 | }else{ | 326 | }else{ |
327 | out("<b>"+tr("Error while removing")+"</b><hr>"+it->name()); | 327 | out("<b>"+tr("Error while removing")+"</b><hr>"+it->name()); |
328 | } | 328 | } |
329 | if ( it->link() )delete fileList; | 329 | if ( it->link() )delete fileList; |
330 | } | 330 | } |
331 | out("<br>"); | 331 | out("<br>"); |
332 | } | 332 | } |
333 | 333 | ||
334 | 334 | ||
335 | void PmIpkg::install() | 335 | void PmIpkg::install() |
336 | { | 336 | { |
@@ -341,24 +341,25 @@ void PmIpkg::install() | |||
341 | 341 | ||
342 | if ( runIpkg("install " + it->installName(), it->dest() ) == 0 ) | 342 | if ( runIpkg("install " + it->installName(), it->dest() ) == 0 ) |
343 | { | 343 | { |
344 | runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress()); | 344 | runwindow->progress->setProgress( it->size().toInt() + runwindow->progress->progress()); |
345 | linkOpp = createLink; | 345 | linkOpp = createLink; |
346 | if ( it->link() ) | 346 | if ( it->link() ) |
347 | { | 347 | { |
348 | out( "<br>creating links<br>" ); | 348 | out( "<br>creating links<br>" ); |
349 | out( "for package "+it->name()+" in "+it->dest()+"<br>" ); | 349 | out( "for package "+it->name()+" in "+it->dest()+"<br>" ); |
350 | makeLinks( it ); | 350 | makeLinks( it ); |
351 | } | 351 | } |
352 | it->processed(); | 352 | it->processed(); |
353 | // to_install.take( it->name() ); | ||
353 | out("<br><hr>"); | 354 | out("<br><hr>"); |
354 | }else{ | 355 | }else{ |
355 | out("<b>"+tr("Error while installing")+"</b><hr>"+it->name()); | 356 | out("<b>"+tr("Error while installing")+"</b><hr>"+it->name()); |
356 | } | 357 | } |
357 | } | 358 | } |
358 | out("<br>"); | 359 | out("<br>"); |
359 | } | 360 | } |
360 | 361 | ||
361 | void PmIpkg::createLinks( const QString &dest ) | 362 | void PmIpkg::createLinks( const QString &dest ) |
362 | { | 363 | { |
363 | pvDebug(2,"PmIpkg::createLinks "+dest); | 364 | pvDebug(2,"PmIpkg::createLinks "+dest); |
364 | linkOpp=createLink; | 365 | linkOpp=createLink; |