Date: Tue, 9 Jul 2013 07:29:25 GMT From: mattbw@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r254454 - in soc2013/mattbw/backend: . actions query Message-ID: <201307090729.r697TP8N038834@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mattbw Date: Tue Jul 9 07:29:25 2013 New Revision: 254454 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=254454 Log: more cleanup mainly to allow -Weverything -Wno-system-includes to work Modified: soc2013/mattbw/backend/.indent.pro soc2013/mattbw/backend/Makefile soc2013/mattbw/backend/actions/get_details.c soc2013/mattbw/backend/actions/install_packages.c soc2013/mattbw/backend/groups.c soc2013/mattbw/backend/groups.h soc2013/mattbw/backend/licenses.c soc2013/mattbw/backend/pkgutils.c soc2013/mattbw/backend/query/core.c soc2013/mattbw/backend/query/do.c soc2013/mattbw/backend/utils.h Modified: soc2013/mattbw/backend/.indent.pro ============================================================================== --- soc2013/mattbw/backend/.indent.pro Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/.indent.pro Tue Jul 9 07:29:25 2013 (r254454) @@ -1,3 +1,5 @@ +-TPkBitfield +-TPkGroupEnum -TPkBackend -Tgchar -Tgboolean Modified: soc2013/mattbw/backend/Makefile ============================================================================== --- soc2013/mattbw/backend/Makefile Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/Makefile Tue Jul 9 07:29:25 2013 (r254454) @@ -33,13 +33,19 @@ .if USE_PK_PKGCONF PKGS+= packagekit-glib2 .else -CFLAGS+= -I/usr/local/include/PackageKit -I/usr/local/include/PackageKit/backend +CFLAGS+= -isystem/usr/local/include/PackageKit -isystem/usr/local/include/PackageKit/backend LDFLAGS+= -L/usr/local/lib -lpackagekit-glib2 .endif CFLAGS+= `pkg-config --cflags ${PKGS}` CFLAGS+= -DPK_COMPILATION LDFLAGS+= `pkg-config --libs ${PKGS}` -CSTD?= c99 +CSTD?= c11 + +# NOTE: remove this before finishing +CFLAGS+= --pedantic -Weverything -Werror -Wno-system-headers \ + -isystem /usr/local/include/glib-2.0 \ + -isystem /usr/local/include \ + -isystem /usr/include .include <bsd.lib.mk> Modified: soc2013/mattbw/backend/actions/get_details.c ============================================================================== --- soc2013/mattbw/backend/actions/get_details.c Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/actions/get_details.c Tue Jul 9 07:29:25 2013 (r254454) @@ -20,6 +20,7 @@ #include <glib.h> #include <stdbool.h> +#include <stdint.h> #include "../pk-backend.h" #include "pkg.h" @@ -57,6 +58,7 @@ const char *origin; const char *www; int64_t flatsize; + guint flatsize_u; query_set_percentage(q, 0); @@ -69,13 +71,15 @@ PKG_ORIGIN, &origin, PKG_WWW, &www); + flatsize_u = (guint)CLAMP(flatsize, 0, G_MAXUINT); + success = pk_backend_details(query_backend(q), id, license_name_from_pkg(pkg), group_from_origin(origin), description, www, - flatsize) == TRUE; + flatsize_u) == TRUE; query_set_percentage(q, 100); return success; Modified: soc2013/mattbw/backend/actions/install_packages.c ============================================================================== --- soc2013/mattbw/backend/actions/install_packages.c Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/actions/install_packages.c Tue Jul 9 07:29:25 2013 (r254454) @@ -68,7 +68,7 @@ /* * Tries to process the given solved installation jobs. */ -static bool +static bool job(struct pkg_jobs *jobs, struct query *q) { bool success; @@ -101,7 +101,7 @@ /* * Tries to simulate processing the given installation jobs. */ -static bool +static bool sim_job(struct pkg_jobs *jobs, struct query *q) { bool success; @@ -132,7 +132,7 @@ /* * Solves a job and ensures it has packages available. */ -static bool +static bool solve_job(struct query *q, struct pkg_jobs *jobs) { bool success; @@ -157,7 +157,8 @@ } /* - * Event handler for events emitted by pkg during an installation. + * Event handler for events emitted by pkg during an installation. TODO: Many + * of these events are unhandled or deficiently handled. */ static int install_event_cb(void *backend_v, struct pkg_event *event) @@ -166,9 +167,9 @@ backend = (PkBackend *)backend_v; - /* TODO: percentage bar */ switch (event->type) { case PKG_EVENT_INSTALL_BEGIN: + STATUS(backend, PK_STATUS_ENUM_INSTALL); pkgutils_emit(event->e_install_begin.pkg, backend, PK_INFO_ENUM_INSTALLING); @@ -179,6 +180,7 @@ PK_INFO_ENUM_FINISHED); break; case PKG_EVENT_DEINSTALL_BEGIN: + STATUS(backend, PK_STATUS_ENUM_REMOVE); pkgutils_emit(event->e_deinstall_begin.pkg, backend, PK_INFO_ENUM_REMOVING); @@ -189,6 +191,7 @@ PK_INFO_ENUM_FINISHED); break; case PKG_EVENT_UPGRADE_BEGIN: + STATUS(backend, PK_STATUS_ENUM_UPDATE); pkgutils_emit(event->e_upgrade_begin.pkg, backend, PK_INFO_ENUM_UPDATING); @@ -198,29 +201,56 @@ backend, PK_INFO_ENUM_FINISHED); break; + case PKG_EVENT_FETCHING: + STATUS(backend, PK_STATUS_ENUM_DOWNLOAD); + break; + case PKG_EVENT_INTEGRITYCHECK_BEGIN: + case PKG_EVENT_INTEGRITYCHECK_FINISHED: + /* Unimplemented */ + break; + case PKG_EVENT_INTEGRITYCHECK_CONFLICT: + ERR(backend, + PK_ERROR_ENUM_PACKAGE_CORRUPT, + event->e_integrity_conflict.pkg_name); + break; + case PKG_EVENT_NEWPKGVERSION: + case PKG_EVENT_NOTICE: + case PKG_EVENT_INCREMENTAL_UPDATE: + /* Unimplemented */ + break; case PKG_EVENT_ERROR: /* * This is sometimes used for nonfatal errors, so we can't - * throw an error code here + * throw an error code here. */ -#if 0 - ERR(backend, - PK_ERROR_ENUM_PACKAGE_FAILED_TO_INSTALL, - event->e_pkg_error.msg); -#endif + break; + case PKG_EVENT_ERRNO: + case PKG_EVENT_ARCHIVE_COMP_UNSUP: + case PKG_EVENT_ALREADY_INSTALLED: + case PKG_EVENT_FAILED_CKSUM: + case PKG_EVENT_CREATE_DB_ERROR: + case PKG_EVENT_LOCKED: + case PKG_EVENT_REQUIRED: + case PKG_EVENT_MISSING_DEP: + case PKG_EVENT_NOREMOTEDB: + case PKG_EVENT_NOLOCALDB: + /* Unimplemented */ break; case PKG_EVENT_FILE_MISMATCH: ERR(backend, PK_ERROR_ENUM_PACKAGE_CORRUPT, pkg_file_path(event->e_file_mismatch.file)); break; + case PKG_EVENT_DEVELOPER_MODE: + case PKG_EVENT_PLUGIN_ERRNO: + case PKG_EVENT_PLUGIN_ERROR: + case PKG_EVENT_PLUGIN_INFO: + /* Unimplemented */ + break; case PKG_EVENT_NOT_FOUND: ERR(backend, PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED, event->e_not_found.pkg_name); - default: - /* Do nothing for unrecognised events */ - break; } return EPKG_OK; Modified: soc2013/mattbw/backend/groups.c ============================================================================== --- soc2013/mattbw/backend/groups.c Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/groups.c Tue Jul 9 07:29:25 2013 (r254454) @@ -18,6 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include <assert.h> /* assert */ #include <stdlib.h> /* NULL */ #include <string.h> /* strchr, strdup */ @@ -25,12 +26,11 @@ #include "pk-backend.h" /* PkGroupEnum, PK_* */ #include "groups.h" /* prototypes */ -#include "mappings.h" /* mapping macros */ -static const char ORIGIN_SEPARATOR = '/'; +static const char ORIGIN_SEPARATOR = '/'; struct group_mapping { - const char /* @null@ */ *key; + const char *key; PkGroupEnum group; }; @@ -112,9 +112,11 @@ {"x11-toolkits", PK_GROUP_ENUM_DESKTOP_OTHER}, {"x11-wm", PK_GROUP_ENUM_DESKTOP_OTHER}, /* Default (for new/unspecified ports directories) */ - {NULL, PK_GROUP_ENUM_UNKNOWN} + {"", PK_GROUP_ENUM_UNKNOWN} }; +static PkGroupEnum group_from_port_dir(const char *port_dir); + /* Reports the PackageKit groups available on this backend as a bitfield. */ PkBitfield available_groups(void) @@ -123,30 +125,23 @@ PkBitfield bits; bits = 0; - for (i = 0; group_mappings[i].key != NULL; i++) + for (i = 0; group_mappings[i].key[0] != '\0'; i++) pk_bitfield_add(bits, group_mappings[i].group); return bits; } -/* Maps from port/origin directories to PackageKit groups. */ -PkGroupEnum -group_from_port_dir( /* @null@ */ const char *port_dir) -{ - struct group_mapping *result; - - MAPPING_FIND(port_dir, &result, group_mappings); - return result->group; -} - /* Maps from package origins to PackageKit groups. */ PkGroupEnum group_from_origin(const char *origin) { + size_t len; char *dir; char *sep; PkGroupEnum group; + assert(origin != NULL); + /* Find the separation between dir and port name */ sep = strchr(origin, ORIGIN_SEPARATOR); @@ -156,10 +151,25 @@ * origin start and the separator mark the port directory name we * want to use. */ - dir = (sep == NULL ? NULL : strndup(origin, sep - origin)); + len = (size_t) (sep == NULL ? 0 : sep - origin); + dir = strndup(origin, len); group = group_from_port_dir(dir); - if (dir) - free(dir); + free(dir); return group; } + +/* Maps from port/origin directories to PackageKit groups. */ +static PkGroupEnum +group_from_port_dir(const char *port_dir) +{ + struct group_mapping *result; + + assert(port_dir != NULL); + + for (result = group_mappings; + result->key[0] != '\0' && strcmp(result->key, port_dir) != 0; + result++); + + return result->group; +} Modified: soc2013/mattbw/backend/groups.h ============================================================================== --- soc2013/mattbw/backend/groups.h Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/groups.h Tue Jul 9 07:29:25 2013 (r254454) @@ -25,6 +25,5 @@ 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/licenses.c ============================================================================== --- soc2013/mattbw/backend/licenses.c Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/licenses.c Tue Jul 9 07:29:25 2013 (r254454) @@ -50,7 +50,7 @@ case LICENSE_AND: logic_str = " and "; break; - default: + case LICENSE_SINGLE: logic_str = " "; break; } Modified: soc2013/mattbw/backend/pkgutils.c ============================================================================== --- soc2013/mattbw/backend/pkgutils.c Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/pkgutils.c Tue Jul 9 07:29:25 2013 (r254454) @@ -67,9 +67,6 @@ case PKG_UPGRADE: info = PK_INFO_ENUM_UPDATING; break; - default: - /* Stick with the above default. */ - break; } } return info; @@ -84,6 +81,7 @@ const char *repo; switch (pkg_type(pkg)) { + case PKG_OLD_FILE: case PKG_FILE: repo = "local"; break; @@ -93,7 +91,7 @@ case PKG_REMOTE: repo = repo_of_remote(pkg); break; - default: + case PKG_NONE: repo = "unknown"; break; } Modified: soc2013/mattbw/backend/query/core.c ============================================================================== --- soc2013/mattbw/backend/query/core.c Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/query/core.c Tue Jul 9 07:29:25 2013 (r254454) @@ -68,7 +68,7 @@ bool success; bool try_local; bool try_remote; - int match; + match_t match; PkBitfield filters; const char *name; const char *repo; Modified: soc2013/mattbw/backend/query/do.c ============================================================================== --- soc2013/mattbw/backend/query/do.c Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/query/do.c Tue Jul 9 07:29:25 2013 (r254454) @@ -56,9 +56,6 @@ case QUERY_SINGLE_ID: success = do_single(backend, db, s, t); break; - default: - success = false; - break; } pkgdb_close(db); Modified: soc2013/mattbw/backend/utils.h ============================================================================== --- soc2013/mattbw/backend/utils.h Tue Jul 9 07:17:29 2013 (r254453) +++ soc2013/mattbw/backend/utils.h Tue Jul 9 07:29:25 2013 (r254454) @@ -24,8 +24,10 @@ #include <stdbool.h> /* bool */ #define INTENTIONALLY_IGNORE(x) (void)(x) +#define STATUS(backend, status) \ + (void)pk_backend_set_status((backend), (status)) #define ERR(backend, type, msg) \ - (void) pk_backend_error_code((backend), (type), (msg)) + (void)pk_backend_error_code((backend), (type), (msg)) bool string_match(const char *left, const char *right);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307090729.r697TP8N038834>