libzypp  17.36.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 #include <utility>
18 
20 
21 #include <zypp/Package.h>
22 #include <zypp/Changelog.h>
23 #include <zypp/Pathname.h>
24 
25 
26 namespace zypp
27 {
28 namespace target
29 {
30 namespace rpm
31 {
32 
33 struct FileInfo
34 {
37  std::string md5sum;
38  uid_t uid;
39  gid_t gid;
40  mode_t mode;
41  time_t mtime;
42  bool ghost;
44 };
45 
47 //
48 // CLASS NAME : RpmHeader
62 {
63 public:
64  using Ptr = intrusive_ptr<RpmHeader>;
65  using constPtr = intrusive_ptr<const RpmHeader>;
66 
67 private:
68 
69  CapabilitySet PkgRelList_val( tag tag_r, bool pre, std::set<std::string> * freq_r = 0 ) const;
70 
71 public:
72 
76  RpmHeader( Header h_r = 0 );
77 
82  RpmHeader( BinHeader::Ptr & rhs );
83 
84  ~RpmHeader() override;
85 
86  bool isSrc() const;
87  bool isNosrc() const;
88 
89  std::string ident() const;
90 
91 public:
92 
93  std::string tag_name() const;
94  Edition::epoch_t tag_epoch() const;
95  std::string tag_version() const;
96  std::string tag_release() const;
97  Edition tag_edition() const;
98  Arch tag_arch() const;
99 
100  Date tag_installtime() const;
101  Date tag_buildtime() const;
102 
106  CapabilitySet tag_provides ( std::set<std::string> * freq_r = 0 ) const;
110  CapabilitySet tag_requires ( std::set<std::string> * freq_r = 0 ) const;
114  CapabilitySet tag_prerequires ( std::set<std::string> * freq_r = 0 ) const;
118  CapabilitySet tag_conflicts( std::set<std::string> * freq_r = 0 ) const;
122  CapabilitySet tag_obsoletes( std::set<std::string> * freq_r = 0 ) const;
126  CapabilitySet tag_enhances( std::set<std::string> * freq_r = 0 ) const;
130  CapabilitySet tag_suggests( std::set<std::string> * freq_r = 0 ) const;
134  CapabilitySet tag_supplements( std::set<std::string> * freq_r = 0 ) const;
138  CapabilitySet tag_recommends( std::set<std::string> * freq_r = 0 ) const;
139 
140  ByteCount tag_size() const;
141  ByteCount tag_archivesize() const;
142 
143  std::string tag_summary() const;
144  std::string tag_description() const;
145  std::string tag_group() const;
146  std::string tag_vendor() const;
147  std::string tag_distribution() const;
148  std::string tag_license() const;
149  std::string tag_buildhost() const;
150  std::string tag_packager() const;
151  std::string tag_url() const;
152  std::string tag_os() const;
153  std::string tag_prein() const;
154  std::string tag_preinprog() const;
155  std::string tag_postin() const;
156  std::string tag_postinprog() const;
157  std::string tag_preun() const;
158  std::string tag_preunprog() const;
159  std::string tag_postun() const;
160  std::string tag_postunprog() const;
161  std::string tag_pretrans() const;
162  std::string tag_pretransprog() const;
163  std::string tag_posttrans() const;
164  std::string tag_posttransprog()const;
165  std::string tag_sourcerpm() const;
166 
171  std::string signatureKeyID() const;
172 
174  std::list<std::string> tag_filenames() const;
175 
180  std::list<FileInfo> tag_fileinfos() const;
181 
182  Changelog tag_changelog() const;
183 
184 public:
185 
186  std::ostream & dumpOn( std::ostream & str ) const override;
187 
188 public:
189 
194  {
195  VERIFY = 0x0000,
196  NODIGEST = (1<<0),
197  NOSIGNATURE = (1<<1),
198  NOVERIFY = 0xffff
199  };
200 
205  static RpmHeader::constPtr readPackage( const Pathname & path,
206  VERIFICATION verification = VERIFY );
207 
212  static std::pair<RpmHeader::Ptr, int> readPackage( rpmts ts_r, const Pathname & path_r );
213 };
214 
216 } // namespace rpm
217 } // namespace target
218 } // namespace zypp
219 
220 #endif // ZYPP_TARGET_RPM_RPMHEADER_H
221 
intrusive_ptr< const RpmHeader > constPtr
Definition: RpmHeader.h:65
intrusive_ptr< const BinHeader > constPtr
Definition: BinHeader.h:50
Architecture.
Definition: Arch.h:36
Store and operate with byte count.
Definition: ByteCount.h:31
VERIFICATION
Digest and signature verification flags.
Definition: RpmHeader.h:193
std::list< ChangelogEntry > Changelog
List of ChangelogEntry.
Definition: Changelog.h:55
String related utilities and Regular expression matching.
Edition represents [epoch:]version[-release]
Definition: Edition.h:60
bool pre
Definition: richtext.cc:54
Store and operate on date (time_t).
Definition: Date.h:32
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Definition: ResTraits.h:93
intrusive_ptr< BinHeader > Ptr
Definition: BinHeader.h:48
unsigned int epoch_t
Type of an epoch.
Definition: Edition.h:64
std::ostream & dumpOn(std::ostream &str, const RpmPostTransCollector &obj)
std::unordered_set< Capability > CapabilitySet
Definition: Capability.h:35
Wrapper class for rpm header struct.
Definition: RpmHeader.h:61
Easy-to use interface to the ZYPP dependency resolver.
Definition: Application.cc:19