createrepo_c library  0.10.0
C library for metadata manipulation
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Modules Pages
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 /* #undef CR_DELTA_RPM_SUPPORT */
38 #define CR_DEFAULT_MAX_DELTA_RPM_SIZE 100000000
39 
40 typedef struct {
41  cr_Package *package;
42  char *nevr;
43  char *sequence;
44  GStringChunk *chunk;
46 
47 typedef struct {
48  char *name;
49  char *arch;
50  char *epoch;
51  char *version;
52  char *release;
53  char *location_href;
54  gint64 size_installed;
55 
56  char *path;
57  GStringChunk *chunk;
59 
60 gboolean cr_drpm_support(void);
61 
62 #ifdef CR_DELTA_RPM_SUPPORT
63 char *
64 cr_drpm_create(cr_DeltaTargetPackage *old,
66  const char *destdir,
67  GError **err);
68 
70 cr_deltapackage_from_drpm_base(const char *filename,
71  int changelog_limit,
73  GError **err);
74 
75 void
76 cr_deltapackage_free(cr_DeltaPackage *deltapackage);
77 
78 GHashTable *
79 cr_deltarpms_scan_oldpackagedirs(GSList *oldpackagedirs,
80  gint64 max_delta_rpm_size,
81  GError **err);
82 
84 cr_deltatargetpackage_from_package(cr_Package *pkg,
85  const char *path,
86  GError **err);
87 
89 cr_deltatargetpackage_from_rpm(const char *path, GError **err);
90 
91 void
92 cr_deltatargetpackage_free(cr_DeltaTargetPackage *tpkg);
93 
94 gboolean
95 cr_deltarpms_parallel_deltas(GSList *targetpackages,
96  GHashTable *oldpackages,
97  const char *outdeltadir,
98  gint num_deltas,
99  gint workers,
100  gint64 max_delta_rpm_size,
101  gint64 max_work_size,
102  GError **err);
103 
104 GSList *
105 cr_deltarpms_scan_targetdir(const char *path,
106  gint64 max_delta_rpm_size,
107  GError **err);
108 
109 gboolean
110 cr_deltarpms_generate_prestodelta_file(const gchar *drpmdir,
111  cr_XmlFile *f,
112  cr_ChecksumType checksum_type,
113  gint workers,
114  const gchar *prefix_to_strip,
115  GError **err);
116 #endif
117 
118 
121 #ifdef __cplusplus
122 }
123 #endif
124 
125 #endif /* __C_CREATEREPOLIB_DELTARPMS_H__ */
cr_ChecksumType
Definition: checksum.h:43
cr_HeaderReadingFlags
Definition: parsehdr.h:38