]> git.ipfire.org Git - people/ms/pakfire.git/blob - src/libpakfire/include/pakfire/package.h
archive: Change type from PakfireArchive to struct pakfire_archive
[people/ms/pakfire.git] / src / libpakfire / include / pakfire / package.h
1 /*#############################################################################
2 # #
3 # Pakfire - The IPFire package management system #
4 # Copyright (C) 2013 Pakfire development team #
5 # #
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. #
10 # #
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. #
15 # #
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/>. #
18 # #
19 #############################################################################*/
20
21 #ifndef PAKFIRE_PACKAGE_H
22 #define PAKFIRE_PACKAGE_H
23
24 #include <time.h>
25
26 #include <pakfire/filelist.h>
27 #include <pakfire/packagelist.h>
28 #include <pakfire/repo.h>
29 #include <pakfire/types.h>
30
31 struct pakfire_package;
32
33 struct pakfire_package* pakfire_package_create(Pakfire pakfire, struct pakfire_repo* repo,
34 const char* name, const char* evr, const char* arch);
35
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);
39
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);
43
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);
51
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);
88
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);
98
99 int pakfire_package_get_reverse_requires(struct pakfire_package* pkg,
100 struct pakfire_packagelist** list);
101
102 struct pakfire_repo* pakfire_package_get_repo(struct pakfire_package* pkg);
103
104 char* pakfire_package_dump(struct pakfire_package* pkg, int flags);
105
106 struct pakfire_archive* pakfire_package_get_archive(struct pakfire_package* pkg);
107
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);
111
112 enum pakfire_package_dump_flags {
113 PAKFIRE_PKG_DUMP_FILELIST = 1 << 0,
114 PAKFIRE_PKG_DUMP_LONG = 1 << 1,
115 };
116
117 #ifdef PAKFIRE_PRIVATE
118
119 #include <solv/pooltypes.h>
120 #include <uuid/uuid.h>
121
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);
124
125 uint64_t pakfire_package_get_dbid(struct pakfire_package* pkg);
126 void pakfire_package_set_dbid(struct pakfire_package* pkg, uint64_t id);
127
128 Id pakfire_package_id(struct pakfire_package* pkg);
129 int pakfire_package_is_source(struct pakfire_package* pkg);
130
131 char* pakfire_package_join_evr(const char* e, const char* v, const char* r);
132
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);
142
143 #endif
144
145 #endif /* PAKFIRE_PACKAGE_H */