]> git.pld-linux.org Git - packages/appstream-glib.git/blob - appstream-glib-rpm5.patch
- updated to 0.8.2
[packages/appstream-glib.git] / appstream-glib-rpm5.patch
1 --- appstream-glib-0.6.9/libappstream-builder/asb-package-rpm.c.orig    2016-11-30 11:07:39.000000000 +0100
2 +++ appstream-glib-0.6.9/libappstream-builder/asb-package-rpm.c 2017-03-04 07:59:10.334045621 +0100
3 @@ -33,7 +33,7 @@
4  #include <archive.h>
5  #include <archive_entry.h>
6  
7 -#include <rpm/rpmlib.h>
8 +#include <rpm/rpm46compat.h>
9  #include <rpm/rpmts.h>
10  
11  #include "asb-package-rpm.h"
12 @@ -132,6 +132,36 @@ asb_package_rpm_set_source (AsbPackage *
13         asb_package_set_source_pkgname (pkg, srcrpm);
14  }
15  
16 +static uint64_t rpmtdGetNumber(rpmtd td)
17 +{
18 +    uint64_t val = 0;
19 +    int ix;
20 +    assert(td != NULL);
21 +    ix = (td->ix >= 0 ? td->ix : 0);
22 +
23 +    switch (td->type) {
24 +    case RPM_INT64_TYPE:
25 +       val = *((uint64_t *) td->data + ix);
26 +       break;
27 +    case RPM_INT32_TYPE:
28 +       val = *((uint32_t *) td->data + ix);
29 +       break;
30 +    case RPM_INT16_TYPE:
31 +       val = *((uint16_t *) td->data + ix);
32 +       break;
33 +    case RPM_INT8_TYPE:
34 +    case RPM_CHAR_TYPE:
35 +       val = *((uint8_t *) td->data + ix);
36 +       break;
37 +    default:
38 +       break;
39 +    }
40 +    return val;
41 +}
42 +
43 +#define _RPMVSF_NOSIGNATURES (RPMVSF_NODSAHEADER | RPMVSF_NORSAHEADER | RPMVSF_NODSA | RPMVSF_NORSA)
44 +#define        _RPMVSF_NODIGESTS (RPMVSF_NOSHA1HEADER | RPMVSF_NOMD5HEADER | RPMVSF_NOSHA1 | RPMVSF_NOMD5)
45 +
46  static gboolean
47  asb_package_rpm_ensure_nevra (AsbPackage *pkg, GError **error)
48  {
49 @@ -139,7 +169,7 @@ asb_package_rpm_ensure_nevra (AsbPackage
50         AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm);
51         rpmtd td;
52  
53 -       td = rpmtdNew ();
54 +       td = malloc (sizeof (*td));
55         headerGet (priv->h, RPMTAG_NAME, td, HEADERGET_MINMEM);
56         asb_package_set_name (pkg, rpmtdGetString (td));
57         headerGet (priv->h, RPMTAG_VERSION, td, HEADERGET_MINMEM);
58 @@ -150,7 +180,7 @@ asb_package_rpm_ensure_nevra (AsbPackage
59         asb_package_set_arch (pkg, rpmtdGetString (td));
60         headerGet (priv->h, RPMTAG_EPOCH, td, HEADERGET_MINMEM);
61         asb_package_set_epoch (pkg, (guint) rpmtdGetNumber (td));
62 -       rpmtdFree (td);
63 +       free (td);
64         return TRUE;
65  }
66  
67 @@ -161,10 +191,10 @@ asb_package_rpm_ensure_source (AsbPackag
68         AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm);
69         rpmtd td;
70  
71 -       td = rpmtdNew ();
72 +       td = malloc (sizeof (*td));
73         headerGet (priv->h, RPMTAG_SOURCERPM, td, HEADERGET_MINMEM);
74         asb_package_rpm_set_source (pkg, rpmtdGetString (td));
75 -       rpmtdFree (td);
76 +       free (td);
77         return TRUE;
78  }
79  
80 @@ -175,24 +205,28 @@ asb_package_rpm_ensure_url (AsbPackage *
81         AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm);
82         rpmtd td;
83  
84 -       td = rpmtdNew ();
85 +       td = malloc (sizeof (*td));
86         headerGet (priv->h, RPMTAG_URL, td, HEADERGET_MINMEM);
87         asb_package_set_url (pkg, rpmtdGetString (td));
88 -       rpmtdFree (td);
89 +       free (td);
90         return TRUE;
91  }
92  
93  static gboolean
94  asb_package_rpm_ensure_vcs (AsbPackage *pkg, GError **error)
95  {
96 +#ifdef RPMTAG_VCS
97         AsbPackageRpm *pkg_rpm = ASB_PACKAGE_RPM (pkg);
98         AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm);
99         rpmtd td;
100  
101 -       td = rpmtdNew ();
102 +       td = malloc (sizeof (*td));
103         headerGet (priv->h, RPMTAG_VCS, td, HEADERGET_MINMEM);
104         asb_package_set_vcs (pkg, rpmtdGetString (td));
105 -       rpmtdFree (td);
106 +       free (td);
107 +#else
108 +       asb_package_set_vcs (pkg, NULL);
109 +#endif
110         return TRUE;
111  }
112  
113 @@ -203,10 +237,10 @@ asb_package_rpm_ensure_license (AsbPacka
114         AsbPackageRpmPrivate *priv = GET_PRIVATE (pkg_rpm);
115         rpmtd td;
116  
117 -       td = rpmtdNew ();
118 +       td = malloc (sizeof (*td));
119         headerGet (priv->h, RPMTAG_LICENSE, td, HEADERGET_MINMEM);
120         asb_package_rpm_set_license (pkg, rpmtdGetString (td));
121 -       rpmtdFree (td);
122 +       free (td);
123         return TRUE;
124  }
125  
126 @@ -277,7 +311,7 @@ asb_package_rpm_ensure_releases (AsbPack
127  
128         /* read out the file list */
129         for (i = 0; i < 3; i++)
130 -               td[i] = rpmtdNew ();
131 +               td[i] = malloc (sizeof (*td[1]));
132         /* get the ChangeLog info */
133         headerGet (priv->h, RPMTAG_CHANGELOGTIME, td[0], HEADERGET_MINMEM);
134         headerGet (priv->h, RPMTAG_CHANGELOGNAME, td[1], HEADERGET_MINMEM);
135 @@ -292,7 +326,7 @@ asb_package_rpm_ensure_releases (AsbPack
136         }
137         for (i = 0; i < 3; i++) {
138                 rpmtdFreeData (td[i]);
139 -               rpmtdFree (td[i]);
140 +               free (td[i]);
141         }
142         return TRUE;
143  }
144 @@ -309,7 +343,7 @@ asb_package_rpm_ensure_deps (AsbPackage
145         rpmtd td = NULL;
146  
147         /* read out the dep list */
148 -       td = rpmtdNew ();
149 +       td = malloc (sizeof (*td));
150         rc = headerGet (priv->h, RPMTAG_REQUIRENAME, td, HEADERGET_MINMEM);
151         if (!rc) {
152                 ret = FALSE;
153 @@ -339,7 +373,7 @@ asb_package_rpm_ensure_deps (AsbPackage
154          g_free (tmp);
155  out:
156         rpmtdFreeData (td);
157 -       rpmtdFree (td);
158 +       free (td);
159         return ret;
160  }
161  
162 @@ -362,7 +396,7 @@ asb_package_rpm_ensure_filelists (AsbPac
163  
164         /* read out the file list */
165         for (i = 0; i < 3; i++)
166 -               td[i] = rpmtdNew ();
167 +               td[i] = malloc (sizeof (*td[i]));
168         rc = headerGet (priv->h, RPMTAG_DIRNAMES, td[0], HEADERGET_MINMEM);
169         if (rc)
170                 rc = headerGet (priv->h, RPMTAG_BASENAMES, td[1], HEADERGET_MINMEM);
171 @@ -397,7 +431,7 @@ asb_package_rpm_ensure_filelists (AsbPac
172  out:
173         for (i = 0; i < 3; i++) {
174                 rpmtdFreeData (td[i]);
175 -               rpmtdFree (td[i]);
176 +               free (td[i]);
177         }
178         return ret;
179  }
180 --- appstream-glib-0.7.8/libappstream-builder/asb-package-rpm.c~        2018-04-20 12:37:25.000000000 +0200
181 +++ appstream-glib-0.7.8/libappstream-builder/asb-package-rpm.c 2018-05-03 10:49:28.865283220 +0200
182 @@ -29,6 +29,8 @@
183  
184  #include "config.h"
185  
186 +#define _DEFAULT_SOURCE 1
187 +
188  #include <limits.h>
189  #include <archive.h>
190  #include <archive_entry.h>
191
This page took 0.044411 seconds and 3 git commands to generate.