socsvn commit: r256768 - in soc2013/mattbw/backend: . query

From: <mattbw_at_FreeBSD.org>
Date: Sat, 31 Aug 2013 10:31:39 GMT
Author: mattbw
Date: Sat Aug 31 10:31:39 2013
New Revision: 256768
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=256768

Log:
  Use pkgutils_pk_repo_of when making a PackageID from a package.
  
  This means that installed and local-file packages will have a repo of
  "installed" and "local" respectively.
  
  This function now returns remote repo NAMES (repo-XYZ) instead of idents
  (XYZ).  This change is mainly for simplicity.
  

Modified:
  soc2013/mattbw/backend/pkgutils.c
  soc2013/mattbw/backend/query/check_test.c

Modified: soc2013/mattbw/backend/pkgutils.c
==============================================================================
--- soc2013/mattbw/backend/pkgutils.c	Sat Aug 31 09:40:01 2013	(r256767)
+++ soc2013/mattbw/backend/pkgutils.c	Sat Aug 31 10:31:39 2013	(r256768)
_at__at_ -165,18 +165,21 _at__at_
 gchar          *
 pkgutils_pkg_to_id(struct pkg *pkg)
 {
-	gchar	       *strv[4];
+	const char     *name;
+	const char     *version;
+	const char     *arch;
+	const char     *repo;
+
+	assert(pkg != NULL);
 
 	pkg_get(pkg,
-	    PKG_NAME, strv + PK_PACKAGE_ID_NAME,
-	    PKG_VERSION, strv + PK_PACKAGE_ID_VERSION,
-	    PKG_ARCH, strv + PK_PACKAGE_ID_ARCH,
-	    PKG_REPONAME, strv + PK_PACKAGE_ID_DATA);
-
-	return pk_package_id_build(strv[PK_PACKAGE_ID_NAME],
-	    strv[PK_PACKAGE_ID_VERSION],
-	    strv[PK_PACKAGE_ID_ARCH],
-	    strv[PK_PACKAGE_ID_DATA]);
+	    PKG_NAME, &name,
+	    PKG_VERSION, &version,
+	    PKG_ARCH, &arch);
+
+	repo = pkgutils_pk_repo_of(pkg);
+
+	return pk_package_id_build(name, version, arch, repo);
 }
 
 /*
_at__at_ -243,34 +246,20 _at__at_
 /*
  * Gets the PackageKit repository name for the (remote) package.
  *
- * Currently this is actually the pkgng repository ident.  This might change.
+ * Currently this is the pkgng repository name (not the ident as was previously
+ * the case).
  *
  * This does not need to be freed (possibly, TODO: check).
  */
 static const char *
 repo_of_remote(struct pkg *pkg)
 {
-	const char     *repo;
 	const char     *repo_name;
-	struct pkg_repo *repo_struct;
 
 	assert(pkg != NULL);
 	assert(pkg_type(pkg) == PKG_REMOTE);
 
-	repo = repo_name = NULL;
-	repo_struct = NULL;
-
-	/*
-	 * We can get the repo NAME directly, but we need the repo IDENT.
-	 * Short of chopping bits of the string off in the assumption that
-	 * the name is repo-IDENT, we'll have to grab it from the repo
-	 * structure itself.
-	 */
+	repo_name = NULL;
 	pkg_get(pkg, PKG_REPONAME, &repo_name);
-
-	repo_struct = pkg_repo_find_name(repo_name);
-	if (repo_struct)
-		repo = pkg_repo_ident(repo_struct);
-
-	return repo;
+	return repo_name;
 }

Modified: soc2013/mattbw/backend/query/check_test.c
==============================================================================
--- soc2013/mattbw/backend/query/check_test.c	Sat Aug 31 09:40:01 2013	(r256767)
+++ soc2013/mattbw/backend/query/check_test.c	Sat Aug 31 10:31:39 2013	(r256768)
_at__at_ -17,6 +17,7 _at__at_
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
+
 #include <atf-c.h>
 #include <stdlib.h>		/* free */
 #include <string.h>		/* strcmp */
Received on Sat Aug 31 2013 - 10:31:39 UTC