createrepo_c library  1.2.3
C library for metadata manipulation
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
24 extern "C" {
25 #endif
26 
27 #include <glib.h>
28 #include "package.h"
29 #include "parsehdr.h"
30 #include "xml_file.h"
31 
37 #ifndef CR_DELTA_RPM_SUPPORT
38 /* #undef CR_DELTA_RPM_SUPPORT */
39 #endif
40 #define CR_DEFAULT_MAX_DELTA_RPM_SIZE 100000000
41 
42 typedef struct {
43  cr_Package *package;
44  char *nevr;
45  char *sequence;
46  GStringChunk *chunk;
48 
49 typedef struct {
50  char *name;
51  char *arch;
52  char *epoch;
53  char *version;
54  char *release;
55  char *location_href;
56  gint64 size_installed;
57 
58  char *path;
59  GStringChunk *chunk;
61 
62 gboolean cr_drpm_support(void);
63 
64 #ifdef CR_DELTA_RPM_SUPPORT
65 char *
66 cr_drpm_create(cr_DeltaTargetPackage *old,
68  const char *destdir,
69  GError **err);
70 
72 cr_deltapackage_from_drpm_base(const char *filename,
73  int changelog_limit,
75  GError **err);
76 
77 void
78 cr_deltapackage_free(cr_DeltaPackage *deltapackage);
79 
80 GHashTable *
81 cr_deltarpms_scan_oldpackagedirs(GSList *oldpackagedirs,
82  gint64 max_delta_rpm_size,
83  GError **err);
84 
86 cr_deltatargetpackage_from_package(cr_Package *pkg,
87  const char *path,
88  GError **err);
89 
91 cr_deltatargetpackage_from_rpm(const char *path, GError **err);
92 
93 void
94 cr_deltatargetpackage_free(cr_DeltaTargetPackage *tpkg);
95 
96 gboolean
97 cr_deltarpms_parallel_deltas(GSList *targetpackages,
98  GHashTable *oldpackages,
99  const char *outdeltadir,
100  gint num_deltas,
101  gint workers,
102  gint64 max_delta_rpm_size,
103  gint64 max_work_size,
104  GError **err);
105 
106 GSList *
107 cr_deltarpms_scan_targetdir(const char *path,
108  gint64 max_delta_rpm_size,
109  GError **err);
110 
111 gboolean
112 cr_deltarpms_generate_prestodelta_file(const gchar *drpmdir,
113  cr_XmlFile *f,
114  cr_XmlFile *zck_f,
115  cr_ChecksumType checksum_type,
116  gint workers,
117  const gchar *prefix_to_strip,
118  GError **err);
119 #endif
120 
121 
124 #ifdef __cplusplus
125 }
126 #endif
127 
128 #endif /* __C_CREATEREPOLIB_DELTARPMS_H__ */
cr_ChecksumType
Definition: checksum.h:43
cr_HeaderReadingFlags
Definition: parsehdr.h:38