socsvn commit: r255000 - in soc2013/mattbw/backend: . query
mattbw at FreeBSD.org
mattbw at FreeBSD.org
Sun Jul 21 14:15:26 UTC 2013
Author: mattbw
Date: Sun Jul 21 14:15:25 2013
New Revision: 255000
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=255000
Log:
use name-version for jobs instead of name only
Modified:
soc2013/mattbw/backend/pkgutils.c
soc2013/mattbw/backend/pkgutils.h
soc2013/mattbw/backend/query/jobs.c
Modified: soc2013/mattbw/backend/pkgutils.c
==============================================================================
--- soc2013/mattbw/backend/pkgutils.c Sun Jul 21 13:15:05 2013 (r254999)
+++ soc2013/mattbw/backend/pkgutils.c Sun Jul 21 14:15:25 2013 (r255000)
@@ -97,6 +97,22 @@
}
/*
+ * Allocates and returns a string of the form "name-version" that identifies
+ * the given package's name and version.
+ *
+ * To be freed using free(3).
+ */
+char *
+pkgutils_pkg_namever(struct pkg *pkg)
+{
+ char *result;
+
+ result = NULL;
+ (void)pkg_asprintf(&result, "%n-%v", pkg, pkg);
+ return result;
+}
+
+/*
* Gets the PackageKit repository name for the package.
*/
const char *
Modified: soc2013/mattbw/backend/pkgutils.h
==============================================================================
--- soc2013/mattbw/backend/pkgutils.h Sun Jul 21 13:15:05 2013 (r254999)
+++ soc2013/mattbw/backend/pkgutils.h Sun Jul 21 14:15:25 2013 (r255000)
@@ -28,6 +28,7 @@
PkInfoEnum pkgutils_pkg_current_state(struct pkg *pkg);
PkInfoEnum pkgutils_pkg_install_state(struct pkg *pkg);
PkInfoEnum pkgutils_pkg_remove_state(struct pkg *pkg);
+char *pkgutils_pkg_namever(struct pkg *pkg);
const char *pkgutils_pk_repo_of(struct pkg *pkg);
gchar *pkgutils_pkg_to_id(struct pkg *pkg);
gchar *pkgutils_pkg_to_id_through(struct pkg *pkg, const gchar **strv);
Modified: soc2013/mattbw/backend/query/jobs.c
==============================================================================
--- soc2013/mattbw/backend/query/jobs.c Sun Jul 21 13:15:05 2013 (r254999)
+++ soc2013/mattbw/backend/query/jobs.c Sun Jul 21 14:15:25 2013 (r255000)
@@ -29,7 +29,6 @@
#include "core.h" /* query_... */
#include "jobs.h" /* query_jobs_... */
-static int add_pkg(struct pkg_jobs *jobs, match_t type, struct pkg *pkg);
static int repo_from_query(struct pkg_jobs *jobs, struct query *q);
/*
@@ -71,6 +70,7 @@
job_emit_ptr f)
{
bool success;
+ char *namever;
struct pkg_jobs *jobs;
PkBackend *backend;
@@ -80,6 +80,7 @@
success = false;
jobs = NULL;
+ namever = NULL;
backend = query_backend(q);
@@ -95,7 +96,13 @@
"could not set repo");
goto cleanup;
}
- if (add_pkg(jobs, MATCH_EXACT, pkg) != EPKG_OK) {
+ namever = pkgutils_pkg_namever(pkg);
+ if (namever == NULL) {
+ ERR(backend,
+ PK_ERROR_ENUM_OOM,
+ "could not allocate a namever");
+ }
+ if (pkg_jobs_add(jobs, MATCH_EXACT, &namever, 1) != EPKG_OK) {
ERR(backend,
PK_ERROR_ENUM_INTERNAL_ERROR,
"could not add to job");
@@ -111,6 +118,7 @@
success = f(jobs, q);
cleanup:
+ free(namever);
pkg_jobs_free(jobs);
return success;
}
@@ -138,17 +146,6 @@
return true;
}
-/* Adds a single package to a jobs structure. */
-static int
-add_pkg(struct pkg_jobs *jobs, match_t type, struct pkg *pkg)
-{
- char *name;
-
- name = NULL;
- pkg_get(pkg, PKG_NAME, &name);
- return pkg_jobs_add(jobs, type, &name, 1);
-}
-
/* Sets a jobset to target the repository the given query is looking in. */
static int
repo_from_query(struct pkg_jobs *jobs, struct query *q)
More information about the svn-soc-all
mailing list