summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/server.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/noncore/settings/aqpkg/server.cpp b/noncore/settings/aqpkg/server.cpp
index d4fa439..64a9c26 100644
--- a/noncore/settings/aqpkg/server.cpp
+++ b/noncore/settings/aqpkg/server.cpp
@@ -57,206 +57,206 @@ Server :: ~Server()
57void Server :: cleanUp() 57void Server :: cleanUp()
58{ 58{
59 packageList.clear(); 59 packageList.clear();
60} 60}
61 61
62void Server :: readStatusFile( QList<Destination> &destList ) 62void Server :: readStatusFile( QList<Destination> &destList )
63{ 63{
64 cleanUp(); 64 cleanUp();
65 65
66 Destination *dest; 66 Destination *dest;
67 QListIterator<Destination> dit( destList ); 67 QListIterator<Destination> dit( destList );
68 bool rootRead = false; 68 bool rootRead = false;
69 for ( ; dit.current(); ++dit ) 69 for ( ; dit.current(); ++dit )
70 { 70 {
71 dest = dit.current(); 71 dest = dit.current();
72 bool installingToRoot = false; 72 bool installingToRoot = false;
73 73
74 QString path = dest->getDestinationPath(); 74 QString path = dest->getDestinationPath();
75 if ( path.right( 1 ) != "/" ) 75 if ( path.right( 1 ) != "/" )
76 path += "/"; 76 path += "/";
77 77
78 if ( path == "/" ) 78 if ( path == "/" )
79 { 79 {
80 rootRead = true; 80 rootRead = true;
81 installingToRoot = true; 81 installingToRoot = true;
82 } 82 }
83 83
84 packageFile = path + "usr/lib/ipkg/status"; 84 packageFile = path + "usr/lib/ipkg/status";
85 readPackageFile( 0, false, installingToRoot, &( *dest ) ); 85 readPackageFile( 0, false, installingToRoot, &( *dest ) );
86 } 86 }
87 87
88 // Ensure that the root status file is read 88 // Ensure that the root status file is read
89 if ( !rootRead ) 89 if ( !rootRead )
90 { 90 {
91 cout << "Reading status file " << "/usr/lib/ipkg/status" << endl; 91 cout << "Reading status file " << "/usr/lib/ipkg/status" << endl;
92 packageFile = "/usr/lib/ipkg/status"; 92 packageFile = "/usr/lib/ipkg/status";
93 readPackageFile( 0, false, true ); 93 readPackageFile( 0, false, true );
94 } 94 }
95} 95}
96 96
97void Server :: readLocalIpks( Server *local ) 97void Server :: readLocalIpks( Server *local )
98{ 98{
99 cleanUp(); 99 cleanUp();
100 100
101#ifdef QWS 101#ifdef QWS
102 // First, get any local IPKGs in the documents area 102 // First, get any local IPKGs in the documents area
103 // Only applicable to Qtopie/Opie 103 // Only applicable to Qtopie/Opie
104 104
105 DocLnkSet files; 105 DocLnkSet files;
106 Global::findDocuments( &files, "application/ipkg" ); 106 Global::findDocuments( &files, "application/ipkg" );
107 107
108 // Now add the items to the list 108 // Now add the items to the list
109 QListIterator<DocLnk> it( files.children() ); 109 QListIterator<DocLnk> it( files.children() );
110 110
111 for ( ; it.current() ; ++it ) 111 for ( ; it.current() ; ++it )
112 { 112 {
113 // OK, we have a local IPK file, I think the standard naming conventions 113 // OK, we have a local IPK file, I think the standard naming conventions
114 // for these are packagename_version_arm.ipk 114 // for these are packagename_version_arm.ipk
115 QString file = (*it)->file(); 115 QString file = (*it)->file();
116 116
117 // Changed to display the filename (excluding the path) 117 // Changed to display the filename (excluding the path)
118 QString packageName = Utils::getFilenameFromIpkFilename( file ); 118 QString packageName = Utils::getFilenameFromIpkFilename( file );
119 QString ver = Utils::getPackageVersionFromIpkFilename( file ); 119 QString ver = Utils::getPackageVersionFromIpkFilename( file );
120 Package *package = new Package( packageName ); 120 Package *package = new Package( packageName );
121 package->setVersion( ver ); 121 package->setVersion( ver );
122 package->setFilename( file ); 122 package->setFilename( file );
123 package->setPackageStoredLocally( true ); 123 package->setPackageStoredLocally( true );
124 packageList.append( package ); 124 packageList.append( package );
125 } 125 }
126#else 126#else
127 QString names[] = { "advancedfm_0.9.1-20020811_arm.ipk", "libopie_0.9.1-20020811_arm.ipk", "libopieobex_0.9.1-20020811.1_arm.ipk", "opie-addressbook_0.9.1-20020811_arm.ipk" }; 127 QString names[] = { "advancedfm_0.9.1-20020811_arm.ipk", "libopie_0.9.1-20020811_arm.ipk", "libopieobex_0.9.1-20020811.1_arm.ipk", "opie-addressbook_0.9.1-20020811_arm.ipk" };
128 for ( int i = 0 ; i < 4 ; ++i ) 128 for ( int i = 0 ; i < 4 ; ++i )
129 { 129 {
130 // OK, we have a local IPK file, I think the standard naming conventions 130 // OK, we have a local IPK file, I think the standard naming conventions
131 // for these are packagename_version_arm.ipk 131 // for these are packagename_version_arm.ipk
132 QString file = names[i]; 132 QString file = names[i];
133 int p = file.find( "_" ); 133 int p = file.find( "_" );
134 QString tmp = file.mid( 0, p ); 134 QString tmp = file.mid( 0, p );
135 packageList.push_back( Package( tmp ) ); 135 packageList.push_back( Package( tmp ) );
136 int p2 = file.find( "_", p+1 ); 136 int p2 = file.find( "_", p+1 );
137 tmp = file.mid( p+1, p2-(p+1) ); 137 tmp = file.mid( p+1, p2-(p+1) );
138 packageList.back().setVersion( tmp ); 138 packageList.back().setVersion( tmp );
139 packageList.back().setPackageStoredLocally( true ); 139 packageList.back().setPackageStoredLocally( true );
140 } 140 }
141#endif 141#endif
142 142
143 // build local packages 143 // build local packages
144 buildLocalPackages( local ); 144 buildLocalPackages( local );
145} 145}
146 146
147void Server :: readPackageFile( Server *local, bool clearAll, bool installingToRoot, Destination *dest ) 147void Server :: readPackageFile( Server *local, bool clearAll, bool installingToRoot, Destination *dest )
148{ 148{
149 ifstream in( packageFile ); 149 ifstream in( packageFile );
150 if ( !in.is_open() ) 150 if ( !in.is_open() )
151 return; 151 return;
152 152
153 char line[1001]; 153 char line[5001];
154 char k[21]; 154 char k[21];
155 char v[1001]; 155 char v[5001];
156 QString key; 156 QString key;
157 QString value; 157 QString value;
158 158
159 if ( clearAll ) 159 if ( clearAll )
160 cleanUp(); 160 cleanUp();
161 Package *currPackage = 0; 161 Package *currPackage = 0;
162 162
163 bool newPackage = true; 163 bool newPackage = true;
164 do 164 do
165 { 165 {
166 in.getline( line, 1000 ); 166 in.getline( line, 5000 );
167 if ( in.eof() ) 167 if ( in.eof() )
168 continue; 168 continue;
169 169
170 k[0] = '\0'; 170 k[0] = '\0';
171 v[0] = '\0'; 171 v[0] = '\0';
172 172
173 sscanf( line, "%[^:]: %[^\n]", k, v ); 173 sscanf( line, "%[^:]: %[^\n]", k, v );
174 174
175 key = k; 175 key = k;
176 value = v; 176 value = v;
177 key = key.stripWhiteSpace(); 177 key = key.stripWhiteSpace();
178 value = value.stripWhiteSpace(); 178 value = value.stripWhiteSpace();
179 if ( key == "Package" && newPackage ) 179 if ( key == "Package" && newPackage )
180 { 180 {
181 newPackage = false; 181 newPackage = false;
182 182
183 currPackage = getPackage( value ); 183 currPackage = getPackage( value );
184 if ( !currPackage ) 184 if ( !currPackage )
185 { 185 {
186 Package *package = new Package( value ); 186 Package *package = new Package( value );
187 packageList.append( package ); 187 packageList.append( package );
188 currPackage = package; 188 currPackage = package;
189 currPackage->setInstalledTo( dest ); 189 currPackage->setInstalledTo( dest );
190 if ( installingToRoot ) 190 if ( installingToRoot )
191 currPackage->setInstalledToRoot( true ); 191 currPackage->setInstalledToRoot( true );
192 } 192 }
193 else 193 else
194 { 194 {
195 if (currPackage->getStatus().find( "deinstall" ) != -1 ) 195 if (currPackage->getStatus().find( "deinstall" ) != -1 )
196 currPackage->setInstalledTo( dest ); 196 currPackage->setInstalledTo( dest );
197 } 197 }
198 } 198 }
199 else if ( key == "Version" ) 199 else if ( key == "Version" )
200 { 200 {
201 if ( currPackage ) 201 if ( currPackage )
202 currPackage->setVersion( value ); 202 currPackage->setVersion( value );
203 } 203 }
204 else if ( key == "Status" ) 204 else if ( key == "Status" )
205 { 205 {
206 if ( currPackage ) 206 if ( currPackage )
207 currPackage->setStatus( value ); 207 currPackage->setStatus( value );
208 } 208 }
209 else if ( key == "Description" ) 209 else if ( key == "Description" )
210 { 210 {
211 if ( currPackage ) 211 if ( currPackage )
212 currPackage->setDescription( value ); 212 currPackage->setDescription( value );
213 } 213 }
214 else if ( key == "Filename" ) 214 else if ( key == "Filename" )
215 { 215 {
216 if ( currPackage ) 216 if ( currPackage )
217 currPackage->setFilename( value ); 217 currPackage->setFilename( value );
218 } 218 }
219 else if ( key == "Size" ) 219 else if ( key == "Size" )
220 { 220 {
221 if ( currPackage ) 221 if ( currPackage )
222 currPackage->setPackageSize( value ); 222 currPackage->setPackageSize( value );
223 } 223 }
224 else if ( key == "Section" ) 224 else if ( key == "Section" )
225 { 225 {
226 if ( currPackage ) 226 if ( currPackage )
227 currPackage->setSection( value ); 227 currPackage->setSection( value );
228 228
229 DataManager::setAvailableCategories( value ); 229 DataManager::setAvailableCategories( value );
230 } 230 }
231 else if ( key == "" ) 231 else if ( key == "" )
232 { 232 {
233 newPackage = true; 233 newPackage = true;
234 } 234 }
235 } while ( !in.eof() ); 235 } while ( !in.eof() );
236 236
237 in.close(); 237 in.close();
238 238
239 // build local packages 239 // build local packages
240 buildLocalPackages( local ); 240 buildLocalPackages( local );
241} 241}
242 242
243void Server :: buildLocalPackages( Server *local ) 243void Server :: buildLocalPackages( Server *local )
244{ 244{
245 Package *curr; 245 Package *curr;
246 QListIterator<Package> it( packageList ); 246 QListIterator<Package> it( packageList );
247 for ( ; it.current(); ++it ) 247 for ( ; it.current(); ++it )
248 { 248 {
249 curr = it.current(); 249 curr = it.current();
250 QString name = curr->getPackageName(); 250 QString name = curr->getPackageName();
251 251
252 // If the package name is an ipk name, then convert the filename to a package name 252 // If the package name is an ipk name, then convert the filename to a package name
253 if ( name.find( ".ipk" ) != -1 ) 253 if ( name.find( ".ipk" ) != -1 )
254 name = Utils::getPackageNameFromIpkFilename( curr->getFilename() ); 254 name = Utils::getPackageNameFromIpkFilename( curr->getFilename() );
255 255
256 if ( local ) 256 if ( local )
257 { 257 {
258 Package *p = local->getPackage( name ); 258 Package *p = local->getPackage( name );
259 curr->setLocalPackage( p ); 259 curr->setLocalPackage( p );
260 if ( p ) 260 if ( p )
261 { 261 {
262 // Set some default stuff like size and things 262 // Set some default stuff like size and things