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