]>
Commit | Line | Data |
---|---|---|
77502258 JB |
1 | --- appstream-glib-0.2.0/libappstream-builder/Makefile.am.orig 2014-06-19 10:09:35.000000000 +0200 |
2 | +++ appstream-glib-0.2.0/libappstream-builder/Makefile.am 2014-06-21 22:26:16.105266525 +0200 | |
3 | @@ -66,6 +66,7 @@ | |
4 | ||
5 | libappstream_builder_la_LIBADD = \ | |
6 | $(AS_GLIB_LIBS) \ | |
7 | + $(LIBARCHIVE_LIBS) \ | |
8 | $(RPM_LIBS) \ | |
9 | $(GLIB_LIBS) | |
10 | ||
11 | @@ -76,6 +77,7 @@ | |
12 | -export-symbols-regex '^asb_.*' | |
13 | ||
14 | libappstream_builder_la_CFLAGS = \ | |
15 | + $(RPM_CFLAGS) \ | |
16 | $(WARNINGFLAGS_C) | |
17 | ||
18 | if HAVE_INTROSPECTION | |
19 | @@ -107,11 +109,6 @@ | |
20 | $(AS_GLIB_LIBS) \ | |
21 | libappstream-builder.la \ | |
22 | archive | |
23 | -if HAVE_RPM | |
24 | -AppStreamBuilder_1_0_gir_LIBS += \ | |
25 | - rpmio \ | |
26 | - rpm | |
27 | -endif | |
28 | AppStreamBuilder_1_0_gir_FILES = $(introspection_sources) | |
29 | INTROSPECTION_GIRS += AppStreamBuilder-1.0.gir | |
30 | ||
4775b279 JB |
31 | --- appstream-glib-0.3.4/libappstream-builder/asb-package-rpm.c.orig 2014-12-22 17:02:12.000000000 +0100 |
32 | +++ appstream-glib-0.3.4/libappstream-builder/asb-package-rpm.c 2015-01-20 18:51:42.939675985 +0100 | |
77502258 JB |
33 | @@ -33,7 +33,7 @@ |
34 | #include <archive.h> | |
35 | #include <archive_entry.h> | |
36 | ||
37 | -#include <rpm/rpmlib.h> | |
38 | +#include <rpm/rpm46compat.h> | |
39 | #include <rpm/rpmts.h> | |
40 | ||
41 | #include "as-cleanup.h" | |
50cd6ceb | 42 | @@ -225,6 +225,36 @@ asb_package_rpm_set_source (AsbPackage * |
b715399e | 43 | asb_package_set_source_pkgname (pkg, srcrpm); |
77502258 JB |
44 | } |
45 | ||
46 | +static uint64_t rpmtdGetNumber(rpmtd td) | |
47 | +{ | |
48 | + uint64_t val = 0; | |
49 | + int ix; | |
50 | + assert(td != NULL); | |
51 | + ix = (td->ix >= 0 ? td->ix : 0); | |
52 | + | |
53 | + switch (td->type) { | |
54 | + case RPM_INT64_TYPE: | |
55 | + val = *((uint64_t *) td->data + ix); | |
56 | + break; | |
57 | + case RPM_INT32_TYPE: | |
58 | + val = *((uint32_t *) td->data + ix); | |
59 | + break; | |
60 | + case RPM_INT16_TYPE: | |
61 | + val = *((uint16_t *) td->data + ix); | |
62 | + break; | |
63 | + case RPM_INT8_TYPE: | |
64 | + case RPM_CHAR_TYPE: | |
65 | + val = *((uint8_t *) td->data + ix); | |
66 | + break; | |
67 | + default: | |
68 | + break; | |
69 | + } | |
70 | + return val; | |
71 | +} | |
b715399e JB |
72 | + |
73 | +#define _RPMVSF_NOSIGNATURES (RPMVSF_NODSAHEADER | RPMVSF_NORSAHEADER | RPMVSF_NODSA | RPMVSF_NORSA) | |
74 | +#define _RPMVSF_NODIGESTS (RPMVSF_NOSHA1HEADER | RPMVSF_NOMD5HEADER | RPMVSF_NOSHA1 | RPMVSF_NOMD5) | |
77502258 JB |
75 | + |
76 | /** | |
50cd6ceb | 77 | * asb_package_rpm_ensure_nevra: |
77502258 | 78 | **/ |
50cd6ceb JB |
79 | @@ -235,7 +265,7 @@ asb_package_rpm_ensure_nevra (AsbPackage |
80 | AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm); | |
77502258 JB |
81 | rpmtd td; |
82 | ||
77502258 JB |
83 | - td = rpmtdNew (); |
84 | + td = malloc (sizeof (*td)); | |
85 | headerGet (priv->h, RPMTAG_NAME, td, HEADERGET_MINMEM); | |
86 | asb_package_set_name (pkg, rpmtdGetString (td)); | |
87 | headerGet (priv->h, RPMTAG_VERSION, td, HEADERGET_MINMEM); | |
50cd6ceb JB |
88 | @@ -246,7 +276,7 @@ asb_package_rpm_ensure_nevra (AsbPackage |
89 | asb_package_set_arch (pkg, rpmtdGetString (td)); | |
90 | headerGet (priv->h, RPMTAG_EPOCH, td, HEADERGET_MINMEM); | |
91 | asb_package_set_epoch (pkg, rpmtdGetNumber (td)); | |
92 | - rpmtdFree (td); | |
93 | + free (td); | |
94 | return TRUE; | |
95 | } | |
96 | ||
97 | @@ -260,10 +290,10 @@ asb_package_rpm_ensure_source (AsbPackag | |
98 | AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm); | |
99 | rpmtd td; | |
100 | ||
101 | - td = rpmtdNew (); | |
102 | + td = malloc (sizeof (*td)); | |
77502258 JB |
103 | headerGet (priv->h, RPMTAG_SOURCERPM, td, HEADERGET_MINMEM); |
104 | asb_package_rpm_set_source (pkg, rpmtdGetString (td)); | |
105 | - rpmtdFree (td); | |
106 | + free (td); | |
50cd6ceb JB |
107 | return TRUE; |
108 | } | |
109 | ||
110 | @@ -277,10 +307,10 @@ asb_package_rpm_ensure_url (AsbPackage * | |
111 | AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm); | |
112 | rpmtd td; | |
113 | ||
114 | - td = rpmtdNew (); | |
115 | + td = malloc (sizeof (*td)); | |
116 | headerGet (priv->h, RPMTAG_URL, td, HEADERGET_MINMEM); | |
117 | asb_package_set_url (pkg, rpmtdGetString (td)); | |
118 | - rpmtdFree (td); | |
119 | + free (td); | |
120 | return TRUE; | |
121 | } | |
122 | ||
4775b279 JB |
123 | @@ -290,14 +320,18 @@ asb_package_rpm_ensure_url (AsbPackage * |
124 | static gboolean | |
125 | asb_package_rpm_ensure_vcs (AsbPackage *pkg, GError **error) | |
126 | { | |
127 | +#ifdef RPMTAG_VCS | |
128 | AsbPackageRpm *pkg_rpm = ASB_PACKAGE_RPM (pkg); | |
129 | AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm); | |
130 | rpmtd td; | |
131 | ||
132 | - td = rpmtdNew (); | |
133 | + td = malloc (sizeof (*td)); | |
134 | headerGet (priv->h, RPMTAG_VCS, td, HEADERGET_MINMEM); | |
135 | asb_package_set_vcs (pkg, rpmtdGetString (td)); | |
136 | rpmtdFree (td); | |
137 | +#else | |
138 | + asb_package_set_vcs (pkg, NULL); | |
139 | +#endif | |
140 | return TRUE; | |
141 | } | |
142 | ||
143 | @@ -311,10 +345,10 @@ asb_package_rpm_ensure_license (AsbPacka | |
50cd6ceb JB |
144 | AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm); |
145 | rpmtd td; | |
146 | ||
147 | - td = rpmtdNew (); | |
148 | + td = malloc (sizeof (*td)); | |
149 | headerGet (priv->h, RPMTAG_LICENSE, td, HEADERGET_MINMEM); | |
150 | asb_package_rpm_set_license (pkg, rpmtdGetString (td)); | |
151 | - rpmtdFree (td); | |
152 | + free (td); | |
153 | return TRUE; | |
77502258 JB |
154 | } |
155 | ||
4775b279 | 156 | @@ -387,7 +421,7 @@ asb_package_rpm_ensure_releases (AsbPack |
77502258 JB |
157 | |
158 | /* read out the file list */ | |
159 | for (i = 0; i < 3; i++) | |
160 | - td[i] = rpmtdNew (); | |
161 | + td[i] = malloc (sizeof (*td[1])); | |
162 | /* get the ChangeLog info */ | |
163 | headerGet (priv->h, RPMTAG_CHANGELOGTIME, td[0], HEADERGET_MINMEM); | |
164 | headerGet (priv->h, RPMTAG_CHANGELOGNAME, td[1], HEADERGET_MINMEM); | |
4775b279 | 165 | @@ -402,7 +436,7 @@ asb_package_rpm_ensure_releases (AsbPack |
77502258 JB |
166 | } |
167 | for (i = 0; i < 3; i++) { | |
168 | rpmtdFreeData (td[i]); | |
169 | - rpmtdFree (td[i]); | |
170 | + free (td[i]); | |
171 | } | |
172 | return TRUE; | |
173 | } | |
4775b279 | 174 | @@ -424,7 +458,7 @@ asb_package_rpm_ensure_deps (AsbPackage |
77502258 JB |
175 | _cleanup_strv_free_ gchar **deps = NULL; |
176 | ||
177 | /* read out the dep list */ | |
178 | - td = rpmtdNew (); | |
179 | + td = malloc (sizeof (*td)); | |
180 | rc = headerGet (priv->h, RPMTAG_REQUIRENAME, td, HEADERGET_MINMEM); | |
181 | if (!rc) { | |
182 | ret = FALSE; | |
4775b279 | 183 | @@ -452,7 +486,7 @@ asb_package_rpm_ensure_deps (AsbPackage |
77502258 JB |
184 | asb_package_set_deps (pkg, deps); |
185 | out: | |
186 | rpmtdFreeData (td); | |
187 | - rpmtdFree (td); | |
188 | + free (td); | |
189 | return ret; | |
190 | } | |
191 | ||
4775b279 | 192 | @@ -478,7 +512,7 @@ asb_package_rpm_ensure_filelists (AsbPac |
77502258 JB |
193 | |
194 | /* read out the file list */ | |
195 | for (i = 0; i < 3; i++) | |
196 | - td[i] = rpmtdNew (); | |
197 | + td[i] = malloc (sizeof (*td[i])); | |
198 | rc = headerGet (priv->h, RPMTAG_DIRNAMES, td[0], HEADERGET_MINMEM); | |
199 | if (rc) | |
200 | rc = headerGet (priv->h, RPMTAG_BASENAMES, td[1], HEADERGET_MINMEM); | |
4775b279 | 201 | @@ -513,7 +547,7 @@ asb_package_rpm_ensure_filelists (AsbPac |
77502258 JB |
202 | out: |
203 | for (i = 0; i < 3; i++) { | |
204 | rpmtdFreeData (td[i]); | |
205 | - rpmtdFree (td[i]); | |
206 | + free (td[i]); | |
207 | } | |
208 | return ret; | |
209 | } |