1 /*#############################################################################
3 # Pakfire - The IPFire package management system #
4 # Copyright (C) 2013 Pakfire development team #
6 # This program is free software: you can redistribute it and/or modify #
7 # it under the terms of the GNU General Public License as published by #
8 # the Free Software Foundation, either version 3 of the License, or #
9 # (at your option) any later version. #
11 # This program is distributed in the hope that it will be useful, #
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of #
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
14 # GNU General Public License for more details. #
16 # You should have received a copy of the GNU General Public License #
17 # along with this program. If not, see <http://www.gnu.org/licenses/>. #
19 #############################################################################*/
21 #ifndef PAKFIRE_PACKAGE_H
22 #define PAKFIRE_PACKAGE_H
26 #include <pakfire/filelist.h>
27 #include <pakfire/packagelist.h>
28 #include <pakfire/repo.h>
29 #include <pakfire/types.h>
31 struct pakfire_package
;
33 struct pakfire_package
* pakfire_package_create(Pakfire pakfire
, struct pakfire_repo
* repo
,
34 const char* name
, const char* evr
, const char* arch
);
36 struct pakfire_package
* pakfire_package_ref(struct pakfire_package
* pkg
);
37 struct pakfire_package
* pakfire_package_unref(struct pakfire_package
* pkg
);
38 Pakfire
pakfire_package_get_pakfire(struct pakfire_package
* pkg
);
40 int pakfire_package_eq(struct pakfire_package
* pkg1
, struct pakfire_package
* pkg2
);
41 int pakfire_package_cmp(struct pakfire_package
* pkg1
, struct pakfire_package
* pkg2
);
42 int pakfire_package_evr_cmp(struct pakfire_package
* pkg1
, struct pakfire_package
* pkg2
);
44 const char* pakfire_package_get_nevra(struct pakfire_package
* pkg
);
45 const char* pakfire_package_get_name(struct pakfire_package
* pkg
);
46 void pakfire_package_set_name(struct pakfire_package
* pkg
, const char* name
);
47 const char* pakfire_package_get_evr(struct pakfire_package
* pkg
);
48 void pakfire_package_set_evr(struct pakfire_package
* pkg
, const char* evr
);
49 const char* pakfire_package_get_arch(struct pakfire_package
* pkg
);
50 void pakfire_package_set_arch(struct pakfire_package
* pkg
, const char* arch
);
52 const char* pakfire_package_get_uuid(struct pakfire_package
* pkg
);
53 void pakfire_package_set_uuid(struct pakfire_package
* pkg
, const char* uuid
);
54 const char* pakfire_package_get_checksum(struct pakfire_package
* pkg
);
55 void pakfire_package_set_checksum(struct pakfire_package
* pkg
, const char* checksum
);
56 const char* pakfire_package_get_summary(struct pakfire_package
* pkg
);
57 void pakfire_package_set_summary(struct pakfire_package
* pkg
, const char* summary
);
58 const char* pakfire_package_get_description(struct pakfire_package
* pkg
);
59 void pakfire_package_set_description(struct pakfire_package
* pkg
, const char* description
);
60 const char* pakfire_package_get_license(struct pakfire_package
* pkg
);
61 void pakfire_package_set_license(struct pakfire_package
* pkg
, const char* license
);
62 const char* pakfire_package_get_url(struct pakfire_package
* pkg
);
63 void pakfire_package_set_url(struct pakfire_package
* pkg
, const char* url
);
64 char* pakfire_package_get_groups(struct pakfire_package
* pkg
);
65 void pakfire_package_set_groups(struct pakfire_package
* pkg
, const char* groups
);
66 const char* pakfire_package_get_vendor(struct pakfire_package
* pkg
);
67 void pakfire_package_set_vendor(struct pakfire_package
* pkg
, const char* vendor
);
68 const char* pakfire_package_get_maintainer(struct pakfire_package
* pkg
);
69 void pakfire_package_set_maintainer(struct pakfire_package
* pkg
, const char* maintainer
);
70 const char* pakfire_package_get_filename(struct pakfire_package
* pkg
);
71 const char* pakfire_package_get_path(struct pakfire_package
* pkg
);
72 void pakfire_package_set_path(struct pakfire_package
* pkg
, const char* path
);
73 void pakfire_package_set_filename(struct pakfire_package
* pkg
, const char* filename
);
74 int pakfire_package_is_installed(struct pakfire_package
* pkg
);
75 unsigned long long pakfire_package_get_downloadsize(struct pakfire_package
* pkg
);
76 void pakfire_package_set_downloadsize(struct pakfire_package
* pkg
, unsigned long long downloadsize
);
77 unsigned long long pakfire_package_get_installsize(struct pakfire_package
* pkg
);
78 void pakfire_package_set_installsize(struct pakfire_package
* pkg
, unsigned long long installsize
);
79 unsigned long long pakfire_package_get_size(struct pakfire_package
* pkg
);
80 const char* pakfire_package_get_build_host(struct pakfire_package
* pkg
);
81 void pakfire_package_set_build_host(struct pakfire_package
* pkg
, const char* build_host
);
82 const char* pakfire_package_get_build_id(struct pakfire_package
* pkg
);
83 void pakfire_package_set_build_id(struct pakfire_package
* pkg
, const char* build_id
);
84 time_t pakfire_package_get_build_time(struct pakfire_package
* pkg
);
85 void pakfire_package_set_build_time(struct pakfire_package
* pkg
, time_t build_time
);
86 time_t pakfire_package_get_install_time(struct pakfire_package
* pkg
);
87 void pakfire_package_set_install_time(struct pakfire_package
* pkg
, time_t install_time
);
89 char** pakfire_package_get_provides(struct pakfire_package
* pkg
);
90 char** pakfire_package_get_prerequires(struct pakfire_package
* pkg
);
91 char** pakfire_package_get_requires(struct pakfire_package
* pkg
);
92 char** pakfire_package_get_conflicts(struct pakfire_package
* pkg
);
93 char** pakfire_package_get_obsoletes(struct pakfire_package
* pkg
);
94 char** pakfire_package_get_recommends(struct pakfire_package
* pkg
);
95 char** pakfire_package_get_suggests(struct pakfire_package
* pkg
);
96 char** pakfire_package_get_supplements(struct pakfire_package
* pkg
);
97 char** pakfire_package_get_enhances(struct pakfire_package
* pkg
);
99 int pakfire_package_get_reverse_requires(struct pakfire_package
* pkg
,
100 struct pakfire_packagelist
** list
);
102 struct pakfire_repo
* pakfire_package_get_repo(struct pakfire_package
* pkg
);
104 char* pakfire_package_dump(struct pakfire_package
* pkg
, int flags
);
106 struct pakfire_archive
* pakfire_package_get_archive(struct pakfire_package
* pkg
);
108 PakfireFilelist
pakfire_package_get_filelist(struct pakfire_package
* pkg
);
109 int pakfire_package_set_filelist(struct pakfire_package
* pkg
, PakfireFilelist filelist
);
110 int pakfire_package_set_filelist_from_string(struct pakfire_package
* pkg
, const char* files
);
112 enum pakfire_package_dump_flags
{
113 PAKFIRE_PKG_DUMP_FILELIST
= 1 << 0,
114 PAKFIRE_PKG_DUMP_LONG
= 1 << 1,
117 #ifdef PAKFIRE_PRIVATE
119 #include <solv/pooltypes.h>
120 #include <uuid/uuid.h>
122 struct pakfire_package
* pakfire_package_create_from_solvable(Pakfire pakfire
, Id id
);
123 void pakfire_package_set_build_id_from_uuid(struct pakfire_package
* pkg
, uuid_t
* build_id
);
125 uint64_t pakfire_package_get_dbid(struct pakfire_package
* pkg
);
126 void pakfire_package_set_dbid(struct pakfire_package
* pkg
, uint64_t id
);
128 Id
pakfire_package_id(struct pakfire_package
* pkg
);
129 int pakfire_package_is_source(struct pakfire_package
* pkg
);
131 char* pakfire_package_join_evr(const char* e
, const char* v
, const char* r
);
133 void pakfire_package_add_provides(struct pakfire_package
* pkg
, const char* dep
);
134 void pakfire_package_add_prerequires(struct pakfire_package
* pkg
, const char* dep
);
135 void pakfire_package_add_requires(struct pakfire_package
* pkg
, const char* dep
);
136 void pakfire_package_add_conflicts(struct pakfire_package
* pkg
, const char* dep
);
137 void pakfire_package_add_obsoletes(struct pakfire_package
* pkg
, const char* dep
);
138 void pakfire_package_add_recommends(struct pakfire_package
* pkg
, const char* dep
);
139 void pakfire_package_add_suggests(struct pakfire_package
* pkg
, const char* dep
);
140 void pakfire_package_add_supplements(struct pakfire_package
* pkg
, const char* dep
);
141 void pakfire_package_add_enhances(struct pakfire_package
* pkg
, const char* dep
);
145 #endif /* PAKFIRE_PACKAGE_H */