1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/source/yum/YUMPackageImpl.cc
13 #include "zypp/source/yum/YUMPackageImpl.h"
14 #include "zypp/base/String.h"
15 #include "zypp/base/Logger.h"
18 using namespace zypp::detail;
19 using namespace zypp::parser::yum;
21 ///////////////////////////////////////////////////////////////////
23 { /////////////////////////////////////////////////////////////////
24 ///////////////////////////////////////////////////////////////////
26 { /////////////////////////////////////////////////////////////////
29 ///////////////////////////////////////////////////////////////////
31 // CLASS NAME : YUMPackageImpl
33 ///////////////////////////////////////////////////////////////////
37 YUMPackageImpl::YUMPackageImpl(
38 const zypp::parser::yum::YUMPrimaryData & parsed,
39 const zypp::parser::yum::YUMFileListData & filelist,
40 const zypp::parser::yum::YUMOtherData & other
42 : _summary(parsed.summary),
44 _buildtime(strtol(parsed.timeBuild.c_str(), 0, 10)),
45 _buildhost(parsed.buildhost),
47 _vendor( parsed.vendor),
48 _license( parsed.license),
49 _packager(parsed.packager),
53 _license_to_confirm(), // TODO add to metadata
54 _authors(parsed.authors),
55 _keywords( parsed.keywords),
56 _mediaid(strtol(parsed.media.c_str(), 0, 10)),
57 _checksum(parsed.checksumType,
60 _location(parsed.location),
64 _install_only(parsed.installOnly)
66 : _size_package(strtol(parsed.sizePackage.c_str(), 0, 10)),
67 _size_archive(strtol(parsed.sizeArchive.c_str(), 0, 10)),
68 _size_installed(strtol(parsed.sizeInstalled.c_str(), 0, 10)),
69 _sourcepkg(parsed.sourcerpm),
70 _dir_sizes(parsed.dirSizes),
73 _description.push_back(parsed.description);
74 for (std::list<FileData>::const_iterator it = filelist.files.begin();
75 it != filelist.files.end();
78 _filenames.push_back(it->name);
80 for (std::list<zypp::parser::yum::ChangelogEntry>::const_iterator
81 it = other.changelog.begin();
82 it != other.changelog.end();
85 _changelog.push_back(ChangelogEntry(strtol(it->date.c_str(), 0, 10),
91 YUMPackageImpl::YUMPackageImpl(
92 const zypp::parser::yum::YUMPatchPackage & parsed
94 : _summary(parsed.summary),
96 _buildtime(strtol(parsed.timeBuild.c_str(), 0, 10)),
97 _buildhost(parsed.buildhost),
99 _vendor( parsed.vendor),
100 _license( parsed.license),
101 _packager( parsed.packager),
102 _group(parsed.group),
103 _changelog(), // TODO
105 _license_to_confirm(), // TODO add to metadata
106 _authors(parsed.authors),
107 _keywords( parsed.keywords),
108 _mediaid(strtol(parsed.media.c_str(), 0, 10)),
109 _checksum(parsed.checksumType,
112 _location(parsed.plainRpms.begin()->filename),
116 _install_only(parsed.installOnly)
118 : _size_package( strtol(parsed.sizePackage.c_str(), 0, 10)),
119 _size_archive( strtol(parsed.sizeArchive.c_str(), 0, 10)),
120 _size_installed( strtol(parsed.sizeInstalled.c_str(), 0, 10)),
121 _sourcepkg( parsed.sourcerpm),
122 _dir_sizes(parsed.dirSizes),
125 _description.push_back(parsed.description);
126 for (std::list<FileData>::const_iterator it = parsed.files.begin();
127 it != parsed.files.end();
130 _filenames.push_back(it->name);
132 for (std::list<zypp::parser::yum::PatchRpm>::const_iterator it
133 = parsed.patchRpms.begin();
134 it != parsed.patchRpms.end();
137 std::list<BaseVersion> base_versions;
138 for (std::list<YUMBaseVersion>::const_iterator bit
139 = it->baseVersions.begin();
140 bit != it->baseVersions.end();
143 Edition base_edition(bit->ver, bit->rel, bit->epoch);
144 BaseVersion base_version(base_edition,
145 CheckSum("md5", bit->md5sum),
146 strtol(bit->buildtime.c_str(), 0, 10));
147 base_versions.push_back(base_version);
149 PatchRpm patch(Arch(it->arch),
151 strtol(it->downloadsize.c_str(), 0, 10),
152 CheckSum("md5", it->md5sum),
153 strtol(it->buildtime.c_str(), 0, 10),
156 _patch_rpms.push_back(patch);
159 for (std::list<zypp::parser::yum::DeltaRpm>::const_iterator it
160 = parsed.deltaRpms.begin();
161 it != parsed.deltaRpms.end();
164 Edition base_edition(it->baseVersion.ver,
166 it->baseVersion.epoch);
167 BaseVersion base_version(base_edition,
168 CheckSum("md5", it->baseVersion.md5sum),
169 strtol(it->baseVersion.buildtime.c_str(),
171 DeltaRpm delta(Arch(it->arch),
173 strtol(it->downloadsize.c_str(), 0, 10),
174 CheckSum("md5", it->md5sum),
175 strtol(it->buildtime.c_str(), 0, 10),
178 _delta_rpms.push_back(delta);
180 for (std::list<zypp::parser::yum::ChangelogEntry>::const_iterator
181 it = parsed.changelog.begin();
182 it != parsed.changelog.end();
185 _changelog.push_back(ChangelogEntry(strtol(it->date.c_str(), 0, 10),
192 /** Package summary */
193 Label YUMPackageImpl::summary() const
196 /** Package description */
197 Text YUMPackageImpl::description() const
198 { return _description; }
200 Text YUMPackageImpl::insnotify() const
201 // metadata doesn't priovide this attribute
202 { return ResObjectImplIf::insnotify(); }
204 Text YUMPackageImpl::delnotify() const
205 // metadata doesn't priovide this attribute
206 { return ResObjectImplIf::delnotify(); }
208 FSize YUMPackageImpl::size() const
211 bool YUMPackageImpl::providesSources() const
212 { return ResObjectImplIf::providesSources(); }
214 Label YUMPackageImpl::instSrcLabel() const
215 { return ResObjectImplIf::instSrcLabel(); }
217 Vendor YUMPackageImpl::instSrcVendor() const
218 { return ResObjectImplIf::instSrcVendor(); }
221 Date YUMPackageImpl::buildtime() const
222 { return _buildtime; }
225 std::string YUMPackageImpl::buildhost() const
226 { return _buildhost; }
229 Date YUMPackageImpl::installtime() const
230 { return PackageImplIf::installtime(); }
233 std::string YUMPackageImpl::distribution() const
237 Vendor YUMPackageImpl::vendor() const
241 Label YUMPackageImpl::license() const
245 std::string YUMPackageImpl::packager() const
246 { return _packager; }
249 PackageGroup YUMPackageImpl::group() const
253 Changelog YUMPackageImpl::changelog() const
254 { return _changelog; }
256 /** Don't ship it as class Url, because it might be
257 * in fact anything but a legal Url. */
258 std::string YUMPackageImpl::url() const
262 std::string YUMPackageImpl::os() const
263 // metadata doesn't priovide this attribute
264 { return PackageImplIf::os(); }
267 Text YUMPackageImpl::prein() const
268 // metadata doesn't priovide this attribute
269 { return PackageImplIf::prein(); }
272 Text YUMPackageImpl::postin() const
273 // metadata doesn't priovide this attribute
274 { return PackageImplIf::postin(); }
277 Text YUMPackageImpl::preun() const
278 // metadata doesn't priovide this attribute
279 { return PackageImplIf::preun(); }
282 Text YUMPackageImpl::postun() const
283 // metadata doesn't priovide this attribute
284 { return PackageImplIf::postun(); }
287 FSize YUMPackageImpl::sourcesize() const
291 FSize YUMPackageImpl::archivesize() const
295 Text YUMPackageImpl::authors() const
299 Text YUMPackageImpl::filenames() const
300 { return _filenames; }
302 License YUMPackageImpl::licenseToConfirm() const
303 { return _license_to_confirm; }
306 std::string YUMPackageImpl::type() const
310 std::list<std::string> YUMPackageImpl::keywords() const
311 { return _keywords; }
313 bool YUMPackageImpl::installOnly() const
314 { return _install_only; }
316 unsigned YUMPackageImpl::mediaId() const
319 PackageImplIf::CheckSum YUMPackageImpl::checksum() const
320 { return _checksum; }
322 std::list<PackageImplIf::DeltaRpm> YUMPackageImpl::deltaRpms() const
323 { return _delta_rpms; }
325 std::list<PackageImplIf::PatchRpm> YUMPackageImpl::patchRpms() const
326 { return _patch_rpms; }
330 std::list<std::string> YUMPackageImpl::insnotify() const
331 { return std::list<std::string>(); }
333 std::list<std::string> YUMPackageImpl::delnotify() const
334 { return std::list<std::string>(); }
336 unsigned YUMPackageImpl::packageSize() const
337 { return _size_package; }
339 unsigned YUMPackageImpl::archiveSize() const
340 { return _size_archive; }
342 unsigned YUMPackageImpl::installedSize() const
343 { return _size_installed; }
344 // FIXME do not understand items below
346 bool YUMPackageImpl::providesSources() const
351 std::string YUMPackageImpl::instSrcLabel() const
356 std::string YUMPackageImpl::instSrcVendor() const
361 unsigned YUMPackageImpl::instSrcRank() const
366 std::string YUMPackageImpl::buildhost() const
371 std::string YUMPackageImpl::distribution() const
376 std::string YUMPackageImpl::vendor() const
381 std::string YUMPackageImpl::license() const
386 std::list<std::string> YUMPackageImpl::licenseToConfirm() const
388 return std::list<std::string>();
391 std::string YUMPackageImpl::packager() const
396 std::string YUMPackageImpl::group() const
401 std::list<std::string> YUMPackageImpl::changelog() const
404 std::string YUMPackageImpl::url() const
409 std::string YUMPackageImpl::os() const
412 std::list<std::string> YUMPackageImpl::prein() const
415 std::list<std::string> YUMPackageImpl::postin() const
418 std::list<std::string> YUMPackageImpl::preun() const
421 std::list<std::string> YUMPackageImpl::postun() const
424 std::string YUMPackageImpl::sourcepkg() const
425 { return _sourcepkg; }
427 std::list<std::string> YUMPackageImpl::authors() const
430 std::list<std::string> YUMPackageImpl::filenames() const
433 std::list<std::string> YUMPackageImpl::recommends() const
436 std::list<std::string> YUMPackageImpl::suggests() const
439 std::string YUMPackageImpl::location() const
442 std::string YUMPackageImpl::md5sum() const
445 std::string YUMPackageImpl::externalUrl() const
448 std::list<Edition> YUMPackageImpl::patchRpmBaseVersions() const
451 unsigned YUMPackageImpl::patchRpmSize() const
454 bool YUMPackageImpl::forceInstall() const
457 std::string YUMPackageImpl::patchRpmMD5() const
460 bool YUMPackageImpl::isRemote() const
463 bool YUMPackageImpl::prefererCandidate() const
469 /////////////////////////////////////////////////////////////////
470 } // namespace source
471 ///////////////////////////////////////////////////////////////////
472 /////////////////////////////////////////////////////////////////
474 ///////////////////////////////////////////////////////////////////