createrepo_c library 1.1.2
C library for metadata manipulation
Loading...
Searching...
No Matches
deltarpms.h
1/* createrepo_c - Library of routines for manipulation with repodata
2 * Copyright (C) 2014 Tomas Mlcoch
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
17 * USA.
18 */
19
20#ifndef __C_CREATEREPOLIB_DELTARPMS_H__
21#define __C_CREATEREPOLIB_DELTARPMS_H__
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27#include <glib.h>
28#include <rpm/rpmlib.h>
29#include "package.h"
30#include "parsehdr.h"
31#include "xml_file.h"
32
38#ifndef CR_DELTA_RPM_SUPPORT
39/* #undef CR_DELTA_RPM_SUPPORT */
40#endif
41#define CR_DEFAULT_MAX_DELTA_RPM_SIZE 100000000
42
43typedef struct {
44 cr_Package *package;
45 char *nevr;
46 char *sequence;
47 GStringChunk *chunk;
49
50typedef struct {
51 char *name;
52 char *arch;
53 char *epoch;
54 char *version;
55 char *release;
56 char *location_href;
57 gint64 size_installed;
58
59 char *path;
60 GStringChunk *chunk;
62
63gboolean cr_drpm_support(void);
64
65#ifdef CR_DELTA_RPM_SUPPORT
66char *
67cr_drpm_create(cr_DeltaTargetPackage *old,
69 const char *destdir,
70 GError **err);
71
73cr_deltapackage_from_drpm_base(const char *filename,
74 int changelog_limit,
76 GError **err);
77
78void
79cr_deltapackage_free(cr_DeltaPackage *deltapackage);
80
81GHashTable *
82cr_deltarpms_scan_oldpackagedirs(GSList *oldpackagedirs,
83 gint64 max_delta_rpm_size,
84 GError **err);
85
87cr_deltatargetpackage_from_package(cr_Package *pkg,
88 const char *path,
89 GError **err);
90
92cr_deltatargetpackage_from_rpm(const char *path, GError **err);
93
94void
95cr_deltatargetpackage_free(cr_DeltaTargetPackage *tpkg);
96
97gboolean
98cr_deltarpms_parallel_deltas(GSList *targetpackages,
99 GHashTable *oldpackages,
100 const char *outdeltadir,
101 gint num_deltas,
102 gint workers,
103 gint64 max_delta_rpm_size,
104 gint64 max_work_size,
105 GError **err);
106
107GSList *
108cr_deltarpms_scan_targetdir(const char *path,
109 gint64 max_delta_rpm_size,
110 GError **err);
111
112gboolean
113cr_deltarpms_generate_prestodelta_file(const gchar *drpmdir,
114 cr_XmlFile *f,
115 cr_XmlFile *zck_f,
116 cr_ChecksumType checksum_type,
117 gint workers,
118 const gchar *prefix_to_strip,
119 GError **err);
120#endif
121
122
125#ifdef __cplusplus
126}
127#endif
128
129#endif /* __C_CREATEREPOLIB_DELTARPMS_H__ */
cr_ChecksumType
Definition: checksum.h:43
cr_HeaderReadingFlags
Definition: parsehdr.h:38