socsvn commit: r253451 - soc2013/mattbw/backend

mattbw at FreeBSD.org mattbw at FreeBSD.org
Mon Jun 24 21:03:11 UTC 2013


Author: mattbw
Date: Mon Jun 24 21:03:10 2013
New Revision: 253451
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=253451

Log:
  tidy up so that WARNS=6 works

Modified:
  soc2013/mattbw/backend/Makefile
  soc2013/mattbw/backend/db.c
  soc2013/mattbw/backend/get-details.c
  soc2013/mattbw/backend/groups.c
  soc2013/mattbw/backend/groups.h
  soc2013/mattbw/backend/pk-backend-pkgng.c

Modified: soc2013/mattbw/backend/Makefile
==============================================================================
--- soc2013/mattbw/backend/Makefile	Mon Jun 24 20:58:54 2013	(r253450)
+++ soc2013/mattbw/backend/Makefile	Mon Jun 24 21:03:10 2013	(r253451)
@@ -4,10 +4,14 @@
 SHLIB_MAJOR=	1
 SRCS=		pk-backend-pkgng.c get-details.c groups.c db.c
 
+LIBDIR=		/usr/local/lib/packagekit-backend
+
 USE_PK_PKGCONF=	0
 
 PKGS= 		pkg gio-2.0 gio-unix-2.0
 
+# 0.6.* versions of PackageKit do not export pkgconf information, so here's a
+# bodge.
 .if USE_PK_PKGCONF
 PKGS+=		packagekit-glib2
 .else

Modified: soc2013/mattbw/backend/db.c
==============================================================================
--- soc2013/mattbw/backend/db.c	Mon Jun 24 20:58:54 2013	(r253450)
+++ soc2013/mattbw/backend/db.c	Mon Jun 24 21:03:10 2013	(r253451)
@@ -23,6 +23,8 @@
 #include "pk-backend.h"
 #include "pkg.h"
 
+#include "db.h"			/* prototypes */
+
 /*
  * Opens a pkgdb ready for remote operations. This will always return TRUE if
  * and only if a database ready for use is now pointed to by *db, and FALSE

Modified: soc2013/mattbw/backend/get-details.c
==============================================================================
--- soc2013/mattbw/backend/get-details.c	Mon Jun 24 20:58:54 2013	(r253450)
+++ soc2013/mattbw/backend/get-details.c	Mon Jun 24 21:03:10 2013	(r253451)
@@ -24,18 +24,37 @@
 #include "pk-backend.h"
 #include "pkg.h"
 
-#include "groups.h"
+#include "db.h"			/* open_remote_db */
+#include "groups.h"		/* group_from_origin */
+#include "get-details.h"	/* get_details_thread prototype */
 
+/* TODO: move out of get-details? */
+gboolean	string_match(const char *left, const char *right);
 static gboolean
-get_local_details(gchar *name,
-		  gchar *version,
-		  gchar *arch,
+get_local_details(const gchar *name,
+		  const gchar *version,
+		  const gchar *arch,
 		  PkBackend *backend,
 		  struct pkgdb *db);
-static gboolean 
+static gboolean
+get_remote_details(const gchar *name,
+		   const gchar *version,
+		   const gchar *arch,
+		   const gchar *reponame,
+		   PkBackend *backend,
+		   struct pkgdb *db);
+static gboolean
 get_details_for(gchar *package_id,
 		PkBackend *backend,
 		struct pkgdb *db);
+gboolean
+get_details_check_matches(struct pkgdb_it *matches,
+			  const gchar *id_name,
+			  const gchar *id_version,
+			  const gchar *id_arch,
+			  const gchar *id_data,
+			  PkBackend *backend);
+
 
 /*
  * Checks two strings with strcmp and emits TRUE if they match. If either
@@ -61,10 +80,10 @@
  */
 gboolean
 get_details_check_matches(struct pkgdb_it *matches,
-			  gchar *id_name,
-			  gchar *id_version,
-			  gchar *id_arch,
-			  gchar *id_data,
+			  const gchar *id_name,
+			  const gchar *id_version,
+			  const gchar *id_arch,
+			  const gchar *id_data,
 			  PkBackend *backend)
 {
 	gboolean	found;
@@ -84,7 +103,6 @@
 			const char     *reponame;
 			const char     *version;
 			const char     *www;
-			pkg_t		type;
 			int64_t		flatsize;
 
 			pkg_get(match,
@@ -144,9 +162,9 @@
 
 /* Looks the split PackageID up in the local database. */
 static gboolean
-get_local_details(gchar *name,
-		  gchar *version,
-		  gchar *arch,
+get_local_details(const gchar *name,
+		  const gchar *version,
+		  const gchar *arch,
 		  PkBackend *backend,
 		  struct pkgdb *db)
 {
@@ -167,10 +185,10 @@
 
 /* Looks the split PackageID up in the remote database. */
 gboolean
-get_remote_details(gchar *name,
-		   gchar *version,
-		   gchar *arch,
-		   gchar *reponame,
+get_remote_details(const gchar *name,
+		   const gchar *version,
+		   const gchar *arch,
+		   const gchar *reponame,
 		   PkBackend *backend,
 		   struct pkgdb *db)
 {
@@ -203,7 +221,6 @@
 				      PK_ERROR_ENUM_PACKAGE_ID_INVALID,
 				      "invalid package id");
 	else {
-		struct pkgdb_it *packages;
 		/* Parts of the package ID */
 		gchar          *name;
 		gchar          *version;

Modified: soc2013/mattbw/backend/groups.c
==============================================================================
--- soc2013/mattbw/backend/groups.c	Mon Jun 24 20:58:54 2013	(r253450)
+++ soc2013/mattbw/backend/groups.c	Mon Jun 24 21:03:10 2013	(r253451)
@@ -18,23 +18,26 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#include <stdlib.h> /* NULL */
-#include <string.h> /* strdup */
+#include <stdlib.h>		/* NULL */
+#include <string.h>		/* strdup */
 
-#include "glib.h" /* g_strcmp0 */
-#include "pk-backend.h" /* PkGroupEnum, PK_* */
+#include "glib.h"		/* g_strcmp0 */
+#include "pk-backend.h"		/* PkGroupEnum, PK_* */
+
+#include "groups.h"		/* prototypes */
 
 struct group_mapping {
-	const char *dir;
-	PkGroupEnum group;
+	const char     *dir;
+	PkGroupEnum	group;
 };
 
-/* Mappings between ports directories (as in the first part of PKG_ORIGIN) and
- * PackageKit enums.
- *
+/*
+ * Mappings between ports directories (as in the first part of PKG_ORIGIN)
+ * and PackageKit enums.
+ * 
  * Some of these mappings are a bit iffy, peer review would be greatly
  * appreciated.
- */ 
+ */
 static struct group_mapping group_mappings[] = {
 	{"accessibility", PK_GROUP_ENUM_ACCESSIBILITY},
 	{"arabic", PK_GROUP_ENUM_LOCALIZATION},
@@ -43,18 +46,18 @@
 	{"audio", PK_GROUP_ENUM_MULTIMEDIA},
 	{"benchmarks", PK_GROUP_ENUM_PROGRAMMING},
 	{"biology", PK_GROUP_ENUM_SCIENCE},
-	{"cad", PK_GROUP_ENUM_SCIENCE}, /* dubious */
+	{"cad", PK_GROUP_ENUM_SCIENCE},	/* dubious */
 	{"chinese", PK_GROUP_ENUM_LOCALIZATION},
 	{"comms", PK_GROUP_ENUM_COMMUNICATION},
-	{"converters", PK_GROUP_ENUM_ACCESSORIES}, /* dubious */
-	{"databases", PK_GROUP_ENUM_SERVERS}, /* dubious */
+	{"converters", PK_GROUP_ENUM_ACCESSORIES},	/* dubious */
+	{"databases", PK_GROUP_ENUM_SERVERS},	/* dubious */
 	{"deskutils", PK_GROUP_ENUM_ACCESSORIES},
 	{"devel", PK_GROUP_ENUM_PROGRAMMING},
-	{"distfiles", PK_GROUP_ENUM_OTHER}, /* ?? */
+	{"distfiles", PK_GROUP_ENUM_OTHER},	/* ?? */
 	{"dns", PK_GROUP_ENUM_NETWORK},
-	{"editors", PK_GROUP_ENUM_OFFICE}, /* dubious */
-	{"emulators", PK_GROUP_ENUM_OTHER}, /* ?? */
-	{"finance", PK_GROUP_ENUM_OFFICE}, /* dubious */
+	{"editors", PK_GROUP_ENUM_OFFICE},	/* dubious */
+	{"emulators", PK_GROUP_ENUM_OTHER},	/* ?? */
+	{"finance", PK_GROUP_ENUM_OFFICE},	/* dubious */
 	{"french", PK_GROUP_ENUM_LOCALIZATION},
 	{"ftp", PK_GROUP_ENUM_NETWORK},
 	{"games", PK_GROUP_ENUM_GAMES},
@@ -74,23 +77,23 @@
 	{"net", PK_GROUP_ENUM_NETWORK},
 	{"net-im", PK_GROUP_ENUM_COMMUNICATION},
 	{"net-mgmt", PK_GROUP_ENUM_NETWORK},
-	{"net-p2p", PK_GROUP_ENUM_NETWORK}, /* possibly COMMUNICATION */
-	{"news", PK_GROUP_ENUM_COMMUNICATION}, /* ?? */
-	{"packages", PK_GROUP_ENUM_OTHER}, /* ?? */
+	{"net-p2p", PK_GROUP_ENUM_NETWORK},	/* possibly COMMUNICATION */
+	{"news", PK_GROUP_ENUM_COMMUNICATION},	/* ?? */
+	{"packages", PK_GROUP_ENUM_OTHER},	/* ?? */
 	{"palm", PK_GROUP_ENUM_OTHER},
 	{"polish", PK_GROUP_ENUM_LOCALIZATION},
-	{"ports-mgmt", PK_GROUP_ENUM_ADMIN_TOOLS}, /* dubious? */
+	{"ports-mgmt", PK_GROUP_ENUM_ADMIN_TOOLS},	/* dubious? */
 	{"portuguese", PK_GROUP_ENUM_LOCALIZATION},
-	{"print", PK_GROUP_ENUM_OFFICE}, /* dubious */
+	{"print", PK_GROUP_ENUM_OFFICE},	/* dubious */
 	{"russian", PK_GROUP_ENUM_LOCALIZATION},
 	{"science", PK_GROUP_ENUM_SCIENCE},
 	{"security", PK_GROUP_ENUM_SECURITY},
-	{"shells", PK_GROUP_ENUM_ACCESSORIES}, /* dubious */
+	{"shells", PK_GROUP_ENUM_ACCESSORIES},	/* dubious */
 	{"sysutils", PK_GROUP_ENUM_ADMIN_TOOLS},
-	{"textproc", PK_GROUP_ENUM_PUBLISHING}, /* dubious */
+	{"textproc", PK_GROUP_ENUM_PUBLISHING},	/* dubious */
 	{"ukrainian", PK_GROUP_ENUM_LOCALIZATION},
 	{"vietnamese", PK_GROUP_ENUM_LOCALIZATION},
-	{"www", PK_GROUP_ENUM_NETWORK}, /* could be COMMUNICATION?  prob. not */
+	{"www", PK_GROUP_ENUM_NETWORK},	/* could be COMMUNICATION?  prob. not */
 	/* Some of the X directories could be better classified possibly */
 	{"x11", PK_GROUP_ENUM_DESKTOP_OTHER},
 	{"x11-clocks", PK_GROUP_ENUM_DESKTOP_OTHER},
@@ -105,30 +108,43 @@
 	{NULL, PK_GROUP_ENUM_UNKNOWN}
 };
 
+/* Reports the PackageKit groups available on this backend as a bitfield. */
+PkBitfield
+available_groups(void)
+{
+	int		i;
+	PkBitfield	bits;
+
+	bits = 0;
+	for (i = 0; group_mappings[i].dir != NULL; i++)
+		pk_bitfield_add(bits, group_mappings[i].group);
+
+	return bits;
+}
+
 /* Maps from port/origin directories to PackageKit groups. */
 PkGroupEnum
 group_from_port_dir(const char *port_dir)
 {
-	int i;
+	int		i;
 
 	i = 0;
 	while (group_mappings[i].dir != NULL &&
-			g_strcmp0(group_mappings[i].dir, port_dir) != 0)
+	       g_strcmp0(group_mappings[i].dir, port_dir) != 0)
 		i++;
 	return group_mappings[i].group;
-}	
+}
 
 /* Maps from package origins to PackageKit groups. */
 PkGroupEnum
 group_from_origin(const char *origin)
 {
-	char *dir;
-	int i;
-	PkGroupEnum group;
+	char           *dir;
+	int		i;
+	PkGroupEnum	group;
 
 	/* Find the separation between dir and port name */
-	for (i = 0; origin[i] != '/' && origin[i] != '\0'; i++)
-		;
+	for (i = 0; origin[i] != '/' && origin[i] != '\0'; i++);
 
 	/* Is this a valid origin? If not, we want the default group */
 	if (origin[i] == '\0')

Modified: soc2013/mattbw/backend/groups.h
==============================================================================
--- soc2013/mattbw/backend/groups.h	Mon Jun 24 20:58:54 2013	(r253450)
+++ soc2013/mattbw/backend/groups.h	Mon Jun 24 21:03:10 2013	(r253451)
@@ -23,12 +23,8 @@
 
 #include "pk-backend.h"
 
-PkGroupEnum group_from_port_dir(const char *port_dir);
-
-PkGroupEnum group_from_origin(const char *origin);
-
-#endif /* _PKGNG_BACKEND_GROUPS_H_ */
-
-
-
+PkBitfield	available_groups(void);
+PkGroupEnum	group_from_origin(const char *origin);
+PkGroupEnum	group_from_port_dir(const char *port_dir);
 
+#endif				/* _PKGNG_BACKEND_GROUPS_H_ */

Modified: soc2013/mattbw/backend/pk-backend-pkgng.c
==============================================================================
--- soc2013/mattbw/backend/pk-backend-pkgng.c	Mon Jun 24 20:58:54 2013	(r253450)
+++ soc2013/mattbw/backend/pk-backend-pkgng.c	Mon Jun 24 21:03:10 2013	(r253451)
@@ -30,7 +30,10 @@
 #include "pk-backend.h"
 #include "pkg.h"
 
-#include "get-details.h"
+#include "groups.h" /* available_groups */
+#include "get-details.h" /* get_details_thread */
+
+#define INTENTIONALLY_IGNORE(x)	(void)(x)
 
 /* static bodges */
 static guint	_progress_percentage = 0;
@@ -56,13 +59,6 @@
 static GSocket *_socket = NULL;
 static guint	_socket_listen_id = 0;
 
-struct pkgng_private {
-	struct pkgdb   *db;
-};
-
-static struct pkgng_private priv;
-
-
 /**
  * pk_backend_initialize:
  */
@@ -86,19 +82,20 @@
 void
 pk_backend_destroy(PkBackend *backend)
 {
+	INTENTIONALLY_IGNORE(backend);
 	pkg_shutdown();
 }
 
-/**
- * pk_backend_get_groups:
+/*
+ * Return all groups available from this backend.
+ *
+ * The business end of this function is in "groups.c".
  */
 PkBitfield
 pk_backend_get_groups(PkBackend *backend)
 {
-	return pk_bitfield_from_enums(PK_GROUP_ENUM_ACCESSIBILITY,
-				      PK_GROUP_ENUM_GAMES,
-				      PK_GROUP_ENUM_SYSTEM,
-				      -1);
+	INTENTIONALLY_IGNORE(backend);
+	return available_groups();
 }
 
 /**
@@ -107,6 +104,7 @@
 PkBitfield
 pk_backend_get_filters(PkBackend *backend)
 {
+	INTENTIONALLY_IGNORE(backend);
 	return pk_bitfield_from_enums(PK_FILTER_ENUM_GUI,
 				      PK_FILTER_ENUM_INSTALLED,
 				      PK_FILTER_ENUM_DEVELOPMENT,
@@ -119,6 +117,7 @@
 gchar          *
 pk_backend_get_mime_types(PkBackend *backend)
 {
+	INTENTIONALLY_IGNORE(backend);
 	return g_strdup("application/x-rpm;application/x-deb");
 }
 
@@ -161,6 +160,9 @@
 void
 pk_backend_get_depends(PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
 {
+	INTENTIONALLY_IGNORE(filters);
+	INTENTIONALLY_IGNORE(recursive);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_QUERY);
 
 	if (g_strcmp0(package_ids[0], "scribus;1.3.4-1.fc8;i386;fedora") == 0) {
@@ -184,6 +186,8 @@
 void
 pk_backend_get_details(PkBackend *backend, gchar **package_ids)
 {
+	INTENTIONALLY_IGNORE(package_ids);	/* can be retrieved from backend */
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_QUERY);
 	pk_backend_set_percentage(backend, PK_BACKEND_PERCENTAGE_INVALID);
 
@@ -240,6 +244,10 @@
 void
 pk_backend_get_requires(PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
 {
+	INTENTIONALLY_IGNORE(filters);
+	INTENTIONALLY_IGNORE(package_ids);
+	INTENTIONALLY_IGNORE(recursive);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_QUERY);
 	pk_backend_package(backend, PK_INFO_ENUM_INSTALLED,
 			   "glib2;2.14.0;i386;fedora", "The GLib library");
@@ -386,6 +394,8 @@
 void
 pk_backend_get_updates(PkBackend *backend, PkBitfield filters)
 {
+	INTENTIONALLY_IGNORE(filters);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_QUERY);
 	pk_backend_set_percentage(backend, PK_BACKEND_PERCENTAGE_INVALID);
 	/* check network state */
@@ -548,6 +558,9 @@
 void
 pk_backend_install_files(PkBackend *backend, gboolean only_trusted, gchar **full_paths)
 {
+	INTENTIONALLY_IGNORE(only_trusted);
+	INTENTIONALLY_IGNORE(full_paths);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_INSTALL);
 	pk_backend_set_percentage(backend, 101);
 	_signal_timeout = g_timeout_add(2000, pk_backend_install_files_timeout, backend);
@@ -577,6 +590,8 @@
 void
 pk_backend_refresh_cache(PkBackend *backend, gboolean force)
 {
+	INTENTIONALLY_IGNORE(force);
+
 	_progress_percentage = 0;
 
 	/* reset */
@@ -694,6 +709,10 @@
 void
 pk_backend_remove_packages(PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
 {
+	INTENTIONALLY_IGNORE(package_ids);
+	INTENTIONALLY_IGNORE(allow_deps);
+	INTENTIONALLY_IGNORE(autoremove);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_REMOVE);
 	pk_backend_error_code(backend, PK_ERROR_ENUM_NO_NETWORK, "No network connection available");
 	pk_backend_finished(backend);
@@ -705,6 +724,9 @@
 void
 pk_backend_search_details(PkBackend *backend, PkBitfield filters, gchar **values)
 {
+	INTENTIONALLY_IGNORE(filters);
+	INTENTIONALLY_IGNORE(values);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_QUERY);
 	pk_backend_set_allow_cancel(backend, TRUE);
 	pk_backend_package(backend, PK_INFO_ENUM_AVAILABLE,
@@ -719,6 +741,8 @@
 void
 pk_backend_search_files(PkBackend *backend, PkBitfield filters, gchar **values)
 {
+	INTENTIONALLY_IGNORE(values);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_QUERY);
 	pk_backend_set_allow_cancel(backend, TRUE);
 	if (!pk_bitfield_contain(filters, PK_FILTER_ENUM_INSTALLED))
@@ -738,6 +762,9 @@
 void
 pk_backend_search_groups(PkBackend *backend, PkBitfield filters, gchar **values)
 {
+	INTENTIONALLY_IGNORE(filters);
+	INTENTIONALLY_IGNORE(values);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_QUERY);
 	pk_backend_set_allow_cancel(backend, TRUE);
 	pk_backend_package(backend, PK_INFO_ENUM_AVAILABLE,
@@ -788,6 +815,9 @@
 void
 pk_backend_search_names(PkBackend *backend, PkBitfield filters, gchar **values)
 {
+	INTENTIONALLY_IGNORE(filters);
+	INTENTIONALLY_IGNORE(values);
+
 	pk_backend_set_percentage(backend, PK_BACKEND_PERCENTAGE_INVALID);
 	pk_backend_set_allow_cancel(backend, TRUE);
 	pk_backend_set_status(backend, PK_STATUS_ENUM_QUERY);
@@ -886,6 +916,7 @@
 	gboolean	has_eula;
 
 	/* FIXME: support only_trusted */
+	INTENTIONALLY_IGNORE(only_trusted);
 
 	if (_use_gpg && !_has_signature) {
 		pk_backend_repo_signature_required(backend, package_ids[0], "updates",
@@ -1085,6 +1116,8 @@
 	gsize		wrote;
 	GSource        *source;
 
+	INTENTIONALLY_IGNORE(only_trusted);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_DOWNLOAD);
 	pk_backend_set_allow_cancel(backend, TRUE);
 	_progress_percentage = 0;
@@ -1262,6 +1295,8 @@
 void
 pk_backend_what_provides(PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, gchar **values)
 {
+	INTENTIONALLY_IGNORE(provides);
+
 	_progress_percentage = 0;
 	_values = values;
 	_signal_timeout = g_timeout_add(200, pk_backend_what_provides_timeout, backend);
@@ -1277,6 +1312,8 @@
 void
 pk_backend_get_packages(PkBackend *backend, PkBitfield filters)
 {
+	INTENTIONALLY_IGNORE(filters);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_REQUEST);
 	pk_backend_package(backend, PK_INFO_ENUM_INSTALLED,
 			   "update1;2.19.1-4.fc8;i386;fedora",
@@ -1292,6 +1329,8 @@
 {
 	gchar          *filename;
 
+	INTENTIONALLY_IGNORE(package_ids);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_DOWNLOAD);
 
 	/* first package */
@@ -1319,6 +1358,8 @@
 void
 pk_backend_simulate_install_packages(PkBackend *backend, gchar **package_ids)
 {
+	INTENTIONALLY_IGNORE(package_ids);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_DEP_RESOLVE);
 
 	pk_backend_package(backend, PK_INFO_ENUM_REMOVING,
@@ -1400,6 +1441,9 @@
 void
 pk_backend_upgrade_system(PkBackend *backend, const gchar *distro_id, PkUpgradeKindEnum upgrade_kind)
 {
+	INTENTIONALLY_IGNORE(distro_id);
+	INTENTIONALLY_IGNORE(upgrade_kind);
+
 	pk_backend_set_status(backend, PK_STATUS_ENUM_DOWNLOAD);
 	pk_backend_set_allow_cancel(backend, TRUE);
 	_progress_percentage = 0;
@@ -1445,6 +1489,7 @@
 gchar          *
 pk_backend_get_description(PkBackend *backend)
 {
+	INTENTIONALLY_IGNORE(backend);
 	return g_strdup("pkgng");
 }
 
@@ -1454,5 +1499,6 @@
 gchar          *
 pk_backend_get_author(PkBackend *backend)
 {
+	INTENTIONALLY_IGNORE(backend);
 	return g_strdup("Matt Windsor <mattbw at FreeBSD.org>");
 }


More information about the svn-soc-all mailing list