View | Details | Raw Unified | Return to bug 1008287
Collapse All | Expand All

(-)PackageKit-1.1.7/backends/zypp/pk-backend-zypp.cpp (+53 lines)
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
{

Return to bug 1008287