]> git.ipfire.org Git - people/ms/pakfire.git/blame - src/libpakfire/include/pakfire/archive.h
compress: Create a unified extraction function
[people/ms/pakfire.git] / src / libpakfire / include / pakfire / archive.h
CommitLineData
221cc3ce
MT
1/*#############################################################################
2# #
3# Pakfire - The IPFire package management system #
4# Copyright (C) 2014 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_ARCHIVE_H
22#define PAKFIRE_ARCHIVE_H
23
e1545ccb 24#include <stddef.h>
221cc3ce 25
900faa2f
MT
26struct pakfire_archive;
27
1bbbfb9e 28#include <pakfire/filelist.h>
5fa89cc9 29#include <pakfire/key.h>
31480bee 30#include <pakfire/package.h>
4651122b 31#include <pakfire/repo.h>
101264c8 32#include <pakfire/scriptlet.h>
221cc3ce 33
618ca500 34typedef enum pakfire_archive_verify_status {
6bf26d8f 35 PAKFIRE_ARCHIVE_VERIFY_UNKNOWN = 0,
457eb699 36 PAKFIRE_ARCHIVE_VERIFY_NOT_SIGNED,
6bf26d8f 37 PAKFIRE_ARCHIVE_VERIFY_OK,
618ca500
MT
38 PAKFIRE_ARCHIVE_VERIFY_INVALID,
39 PAKFIRE_ARCHIVE_VERIFY_SIG_EXPIRED,
40 PAKFIRE_ARCHIVE_VERIFY_KEY_EXPIRED,
41 PAKFIRE_ARCHIVE_VERIFY_KEY_UNKNOWN,
4efcd464 42 PAKFIRE_ARCHIVE_VERIFY_ERROR,
618ca500
MT
43} pakfire_archive_verify_status_t;
44
ac4c607b 45int pakfire_archive_open(struct pakfire_archive** archive, struct pakfire* pakfire, const char* path);
900faa2f
MT
46struct pakfire_archive* pakfire_archive_ref(struct pakfire_archive* archive);
47struct pakfire_archive* pakfire_archive_unref(struct pakfire_archive* archive);
221cc3ce 48
900faa2f 49char* pakfire_archive_get(struct pakfire_archive* archive, const char* namespace, const char* key);
312fd26f 50
900faa2f 51int pakfire_archive_read(struct pakfire_archive* archive, const char* filename,
bd6c66de 52 char** data, size_t* data_size);
79824416 53int pakfire_archive_extract(struct pakfire_archive* archive);
221cc3ce 54
900faa2f 55const char* pakfire_archive_get_path(struct pakfire_archive* archive);
221cc3ce 56
900faa2f 57unsigned int pakfire_archive_get_format(struct pakfire_archive* archive);
221cc3ce 58
1bbbfb9e 59struct pakfire_filelist* pakfire_archive_get_filelist(struct pakfire_archive* archive);
221cc3ce 60
d2b1e88a 61int pakfire_archive_verify(struct pakfire_archive* archive,
5fa89cc9 62 pakfire_archive_verify_status_t* status, struct pakfire_key*** keys);
618ca500 63const char* pakfire_archive_verify_strerror(pakfire_archive_verify_status_t status);
b6a5c6ee 64int pakfire_archive_sign(struct pakfire_archive* archive, struct pakfire_key* key);
618ca500 65
ae9ac5cc 66ssize_t pakfire_archive_get_size(struct pakfire_archive* archive);
b31767bd
MT
67int pakfire_archive_make_package(struct pakfire_archive* archive,
68 struct pakfire_repo* repo, struct pakfire_package** package);
312fd26f 69
221cc3ce
MT
70#ifdef PAKFIRE_PRIVATE
71
e32162cc
MT
72#include <pakfire/pakfire.h>
73
285b2758
MT
74int pakfire_archive_copy(struct pakfire_archive* archive, const char* path);
75
e32162cc
MT
76int pakfire_archive_digest(struct pakfire_archive* archive,
77 enum pakfire_digests type, unsigned char* digest, size_t* length);
78
101264c8 79struct pakfire_scriptlet* pakfire_archive_get_scriptlet(
900faa2f 80 struct pakfire_archive* archive, const char* type);
101264c8 81
221cc3ce
MT
82#endif
83
84#endif /* PAKFIRE_ARCHIVE_H */