|
Lines 2151-2156
pk_backend_get_details (PkBackend *backe
Link Here
|
| 2151 |
pk_backend_job_thread_create (job, backend_get_details_thread, NULL, NULL); |
2151 |
pk_backend_job_thread_create (job, backend_get_details_thread, NULL, NULL); |
| 2152 |
} |
2152 |
} |
| 2153 |
|
2153 |
|
|
|
2154 |
/** |
| 2155 |
* backend_get_details_local_thread: |
| 2156 |
*/ |
| 2157 |
static void |
| 2158 |
backend_get_details_local_thread (PkBackendJob *job, GVariant *params, gpointer user_data) |
| 2159 |
{ |
| 2160 |
MIL << endl; |
| 2161 |
RepoManager manager; |
| 2162 |
ZyppJob zjob(job); |
| 2163 |
ZYpp::Ptr zypp = zjob.get_zypp(); |
| 2164 |
|
| 2165 |
gchar **full_paths; |
| 2166 |
g_variant_get (params, "(^a&s)", &full_paths); |
| 2167 |
|
| 2168 |
if (zypp == NULL){ |
| 2169 |
return; |
| 2170 |
} |
| 2171 |
|
| 2172 |
pk_backend_job_set_status (job, PK_STATUS_ENUM_QUERY); |
| 2173 |
|
| 2174 |
for (guint i = 0; full_paths[i]; i++) { |
| 2175 |
|
| 2176 |
// check if file is really a rpm |
| 2177 |
Pathname rpmPath (full_paths[i]); |
| 2178 |
target::rpm::RpmHeader::constPtr rpmHeader = target::rpm::RpmHeader::readPackage (rpmPath, target::rpm::RpmHeader::NOSIGNATURE); |
| 2179 |
|
| 2180 |
if (rpmHeader == NULL) { |
| 2181 |
zypp_backend_finished_error ( |
| 2182 |
job, PK_ERROR_ENUM_INTERNAL_ERROR, |
| 2183 |
"%s is not valid rpm-File", full_paths[i]); |
| 2184 |
return; |
| 2185 |
} |
| 2186 |
|
| 2187 |
pk_backend_job_details (job, |
| 2188 |
rpmHeader->tag_name ().c_str (), |
| 2189 |
rpmHeader->tag_summary ().c_str (), |
| 2190 |
rpmHeader->tag_license ().c_str (), |
| 2191 |
get_enum_group (rpmHeader->tag_group ()), |
| 2192 |
rpmHeader->tag_description ().c_str (), |
| 2193 |
rpmHeader->tag_url ().c_str (), |
| 2194 |
(gulong)rpmHeader->tag_size ().blocks (zypp::ByteCount::B)); |
| 2195 |
} |
| 2196 |
} |
| 2197 |
|
| 2198 |
/** |
| 2199 |
* pk_backend_get_details_local: |
| 2200 |
*/ |
| 2201 |
void |
| 2202 |
pk_backend_get_details_local (PkBackend *backend, PkBackendJob *job, gchar **full_paths) |
| 2203 |
{ |
| 2204 |
pk_backend_job_thread_create (job, backend_get_details_local_thread, NULL, NULL); |
| 2205 |
} |
| 2206 |
|
| 2154 |
static void |
2207 |
static void |
| 2155 |
backend_get_distro_upgrades_thread(PkBackendJob *job, GVariant *params, gpointer user_data) |
2208 |
backend_get_distro_upgrades_thread(PkBackendJob *job, GVariant *params, gpointer user_data) |
| 2156 |
{ |
2209 |
{ |