Date: Mon, 24 Jun 2013 21:03:10 GMT From: mattbw@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r253451 - soc2013/mattbw/backend Message-ID: <201306242103.r5OL3AWw006268@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@FreeBSD.org>"); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306242103.r5OL3AWw006268>