libzypp 17.25.7
RpmHeader.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_TARGET_RPM_RPMHEADER_H
13#define ZYPP_TARGET_RPM_RPMHEADER_H
14
15#include <iosfwd>
16#include <list>
17
19
20#include <zypp/Package.h>
21#include <zypp/Changelog.h>
22#include <zypp/Pathname.h>
23
24
25namespace zypp
26{
27namespace target
28{
29namespace rpm
30{
31
33{
36 std::string md5sum;
37 uid_t uid;
38 gid_t gid;
39 mode_t mode;
40 time_t mtime;
41 bool ghost;
43};
44
46//
47// CLASS NAME : RpmHeader
60class RpmHeader : public BinHeader
61{
62public:
63 typedef intrusive_ptr<RpmHeader> Ptr;
64 typedef intrusive_ptr<const RpmHeader> constPtr;
65
66private:
67
68 CapabilitySet PkgRelList_val( tag tag_r, bool pre, std::set<std::string> * freq_r = 0 ) const;
69
70public:
71
75 RpmHeader( Header h_r = 0 );
76
82
83 virtual ~RpmHeader();
84
85 bool isSrc() const; //< Either 'src' or 'nosrc'
86 bool isNosrc() const; //< Only 'nosrc'
87
88public:
89
90 std::string tag_name() const;
92 std::string tag_version() const;
93 std::string tag_release() const;
94 Edition tag_edition() const;
95 Arch tag_arch() const;
96
97 Date tag_installtime() const;
98 Date tag_buildtime() const;
99
103 CapabilitySet tag_provides ( std::set<std::string> * freq_r = 0 ) const;
107 CapabilitySet tag_requires ( std::set<std::string> * freq_r = 0 ) const;
111 CapabilitySet tag_prerequires ( std::set<std::string> * freq_r = 0 ) const;
115 CapabilitySet tag_conflicts( std::set<std::string> * freq_r = 0 ) const;
119 CapabilitySet tag_obsoletes( std::set<std::string> * freq_r = 0 ) const;
123 CapabilitySet tag_enhances( std::set<std::string> * freq_r = 0 ) const;
127 CapabilitySet tag_suggests( std::set<std::string> * freq_r = 0 ) const;
131 CapabilitySet tag_supplements( std::set<std::string> * freq_r = 0 ) const;
135 CapabilitySet tag_recommends( std::set<std::string> * freq_r = 0 ) const;
136
137 ByteCount tag_size() const;
139
140 std::string tag_summary() const;
141 std::string tag_description() const;
142 std::string tag_group() const;
143 std::string tag_vendor() const;
144 std::string tag_distribution() const;
145 std::string tag_license() const;
146 std::string tag_buildhost() const;
147 std::string tag_packager() const;
148 std::string tag_url() const;
149 std::string tag_os() const;
150 std::string tag_prein() const;
151 std::string tag_preinprog() const;
152 std::string tag_postin() const;
153 std::string tag_postinprog() const;
154 std::string tag_preun() const;
155 std::string tag_preunprog() const;
156 std::string tag_postun() const;
157 std::string tag_postunprog() const;
158 std::string tag_pretrans() const;
159 std::string tag_pretransprog() const;
160 std::string tag_posttrans() const;
161 std::string tag_posttransprog()const;
162 std::string tag_sourcerpm() const;
163
168 std::string signatureKeyID() const;
169
171 std::list<std::string> tag_filenames() const;
172
177 std::list<FileInfo> tag_fileinfos() const;
178
179 Changelog tag_changelog() const;
180
181public:
182
183 virtual std::ostream & dumpOn( std::ostream & str ) const;
184
185public:
186
191 {
192 VERIFY = 0x0000,
193 NODIGEST = (1<<0),
194 NOSIGNATURE = (1<<1),
195 NOVERIFY = 0xffff
196 };
197
202 static RpmHeader::constPtr readPackage( const Pathname & path,
203 VERIFICATION verification = VERIFY );
204};
205
207} // namespace rpm
208} // namespace target
209} // namespace zypp
210
211#endif // ZYPP_TARGET_RPM_RPMHEADER_H
212
Architecture.
Definition: Arch.h:37
Store and operate with byte count.
Definition: ByteCount.h:31
Store and operate on date (time_t).
Definition: Date.h:33
Edition represents [epoch:]version[-release]
Definition: Edition.h:61
unsigned epoch_t
Type of an epoch.
Definition: Edition.h:64
intrusive_ptr< BinHeader > Ptr
Definition: BinHeader.h:47
Wrapper class for rpm header struct.
Definition: RpmHeader.h:61
CapabilitySet tag_requires(std::set< std::string > *freq_r=0) const
Definition: RpmHeader.cc:563
std::string tag_vendor() const
Definition: RpmHeader.cc:748
CapabilitySet tag_recommends(std::set< std::string > *freq_r=0) const
Definition: RpmHeader.cc:666
std::string tag_prein() const
Definition: RpmHeader.cc:832
Edition::epoch_t tag_epoch() const
Definition: RpmHeader.cc:315
std::string tag_pretrans() const
Definition: RpmHeader.cc:856
CapabilitySet tag_supplements(std::set< std::string > *freq_r=0) const
Definition: RpmHeader.cc:649
static RpmHeader::constPtr readPackage(const Pathname &path, VERIFICATION verification=VERIFY)
Get an accessible packages data from disk.
Definition: RpmHeader.cc:210
virtual std::ostream & dumpOn(std::ostream &str) const
Overload to realize std::ostream & operator<<.
Definition: RpmHeader.cc:266
ByteCount tag_archivesize() const
Definition: RpmHeader.cc:696
CapabilitySet tag_obsoletes(std::set< std::string > *freq_r=0) const
Definition: RpmHeader.cc:602
intrusive_ptr< const RpmHeader > constPtr
Definition: RpmHeader.h:64
std::string tag_summary() const
Definition: RpmHeader.cc:709
std::string tag_preunprog() const
Definition: RpmHeader.cc:847
std::string tag_os() const
Definition: RpmHeader.cc:826
std::string tag_version() const
Definition: RpmHeader.cc:328
std::string tag_postun() const
Definition: RpmHeader.cc:850
CapabilitySet tag_prerequires(std::set< std::string > *freq_r=0) const
Definition: RpmHeader.cc:576
CapabilitySet tag_provides(std::set< std::string > *freq_r=0) const
If freq_r is not NULL, file dependencies found are inserted.
Definition: RpmHeader.cc:550
std::string tag_description() const
Definition: RpmHeader.cc:722
std::string tag_name() const
Definition: RpmHeader.cc:302
std::string tag_pretransprog() const
Definition: RpmHeader.cc:859
std::string tag_buildhost() const
Definition: RpmHeader.cc:787
Edition tag_edition() const
Definition: RpmHeader.cc:354
std::string tag_preinprog() const
Definition: RpmHeader.cc:835
std::string tag_url() const
Definition: RpmHeader.cc:813
Changelog tag_changelog() const
Definition: RpmHeader.cc:1018
std::string tag_posttransprog() const
Definition: RpmHeader.cc:865
CapabilitySet PkgRelList_val(tag tag_r, bool pre, std::set< std::string > *freq_r=0) const
Definition: RpmHeader.cc:406
std::string signatureKeyID() const
Uses headerFormat to query the signature info from the header.
Definition: RpmHeader.cc:881
std::string tag_postunprog() const
Definition: RpmHeader.cc:853
std::string tag_distribution() const
Definition: RpmHeader.cc:761
std::string tag_postinprog() const
Definition: RpmHeader.cc:841
std::string tag_group() const
Definition: RpmHeader.cc:735
std::string tag_license() const
Definition: RpmHeader.cc:774
std::string tag_sourcerpm() const
Definition: RpmHeader.cc:876
CapabilitySet tag_conflicts(std::set< std::string > *freq_r=0) const
Definition: RpmHeader.cc:589
ByteCount tag_size() const
Definition: RpmHeader.cc:683
std::string tag_packager() const
Definition: RpmHeader.cc:800
std::string tag_release() const
Definition: RpmHeader.cc:341
std::string tag_preun() const
Definition: RpmHeader.cc:844
CapabilitySet tag_suggests(std::set< std::string > *freq_r=0) const
Definition: RpmHeader.cc:632
std::string tag_postin() const
Definition: RpmHeader.cc:838
intrusive_ptr< RpmHeader > Ptr
Definition: RpmHeader.h:63
std::list< FileInfo > tag_fileinfos() const
complete information about the files (extended version of tag_filenames())
Definition: RpmHeader.cc:937
std::string tag_posttrans() const
Definition: RpmHeader.cc:862
VERIFICATION
Digest and signature verification flags.
Definition: RpmHeader.h:191
CapabilitySet tag_enhances(std::set< std::string > *freq_r=0) const
Definition: RpmHeader.cc:615
std::list< std::string > tag_filenames() const
just the list of names
Definition: RpmHeader.cc:909
String related utilities and Regular expression matching.
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
std::unordered_set< Capability > CapabilitySet
Definition: Capability.h:35
std::list< ChangelogEntry > Changelog
List of ChangelogEntry.
Definition: Changelog.h:53