opkg_status_callback opkg_cb_status = NULL;
opkg_list_callback opkg_cb_list = NULL;
-
-int
-opkg_init (opkg_message_callback mcall,
- opkg_response_callback rcall,
- args_t * args)
-{
- opkg_cb_message = mcall;
- opkg_cb_response = rcall;
-
- args_init (args);
-
- return 0;
-}
-
-
-int
-opkg_deinit (args_t * args)
-{
- args_deinit (args);
- opkg_cb_message = NULL;
- opkg_cb_response = NULL;
-
- /* place other cleanup stuff here */
-
- return 0;
-}
-
-
-int
-opkg_packages_list(args_t *args,
- const char *packages,
- opkg_list_callback cblist,
- void *userdata)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- opkg_cb_list = cblist;
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find ("list");
- if (packages)
- err = opkg_cmd_exec (cmd, &opkg_conf, 1, &packages, userdata);
- else
- err = opkg_cmd_exec (cmd, &opkg_conf, 0, NULL, userdata);
- opkg_cb_list = NULL;
- opkg_conf_deinit (&opkg_conf);
- return (err);
-}
-
-
-int
-opkg_packages_status(args_t *args,
- const char *packages,
- opkg_status_callback cbstatus,
- void *userdata)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- opkg_cb_status = cbstatus;
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find ("status");
- if (packages)
- err = opkg_cmd_exec (cmd, &opkg_conf, 1, &packages, userdata);
- else
- err = opkg_cmd_exec (cmd, &opkg_conf, 0, NULL, userdata);
-
- opkg_cb_status = NULL;
- opkg_conf_deinit (&opkg_conf);
- return (err);
-}
-
-
-int
-opkg_packages_info(args_t *args,
- const char *packages,
- opkg_status_callback cbstatus,
- void *userdata)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- opkg_cb_status = cbstatus;
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find ("info");
- if (packages)
- err = opkg_cmd_exec (cmd, &opkg_conf, 1, &packages, userdata);
- else
- err = opkg_cmd_exec (cmd, &opkg_conf, 0, NULL, userdata);
-
- opkg_cb_status = NULL;
- opkg_conf_deinit (&opkg_conf);
- return (err);
-}
-
-
-int
-opkg_packages_install (args_t * args, const char *name)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!name || !strlen (name))
- return (-1);
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find ("install");
- err = opkg_cmd_exec (cmd, &opkg_conf, 1, &name, NULL);
-
- opkg_conf_deinit(&opkg_conf);
- return (err);
-}
-
-
-int
-opkg_packages_remove(args_t *args, const char *name, int purge)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!name || !strlen (name))
- return (-1);
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- if (purge)
- cmd = opkg_cmd_find ("purge");
- else
- cmd = opkg_cmd_find ("remove");
-
- err = opkg_cmd_exec (cmd, &opkg_conf, 1, &name, NULL);
-
- opkg_conf_deinit(&opkg_conf);
- return (err);
-}
-
-
-int
-opkg_lists_update(args_t *args)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find ("update");
-
- err = opkg_cmd_exec (cmd, &opkg_conf, 0, NULL, NULL);
-
- opkg_conf_deinit(&opkg_conf);
- return (err);
-}
-
-
-int
-opkg_packages_upgrade(args_t *args)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find ("upgrade");
-
- err = opkg_cmd_exec (cmd, &opkg_conf, 0, NULL, NULL);
-
- opkg_conf_deinit(&opkg_conf);
- return (err);
-}
-
-
-int
-opkg_packages_download (args_t * args, const char *name)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!name || !strlen (name))
- return (-1);
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- opkg_print_error_list (&opkg_conf);
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find ("download");
- err = opkg_cmd_exec (cmd, &opkg_conf, 1, &name, NULL);
-
- opkg_conf_deinit(&opkg_conf);
- return (err);
-}
-
-
-int
-opkg_package_files(args_t *args,
- const char *name,
- opkg_list_callback cblist,
- void *userdata)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!name || !strlen (name))
- return (-1);
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- opkg_cb_list = cblist;
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find ("files");
-
- err = opkg_cmd_exec (cmd, &opkg_conf, 1, &name, userdata);
-
- opkg_cb_list = NULL;
- opkg_conf_deinit(&opkg_conf);
- return (err);
-}
-
-
-int
-opkg_file_search(args_t *args,
- const char *file,
- opkg_list_callback cblist,
- void *userdata)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!file || !strlen (file))
- return (-1);
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- opkg_cb_list = cblist;
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find ("search");
- err = opkg_cmd_exec (cmd, &opkg_conf, 1, &file, userdata);
-
- opkg_cb_list = NULL;
- opkg_conf_deinit(&opkg_conf);
- return(err);
-}
-
-
-int
-opkg_file_what(args_t *args, const char *file, const char* command)
-{
- opkg_cmd_t *cmd;
- opkg_conf_t opkg_conf;
- int err;
-
- /* this error should be handled in application */
- if (!file || !strlen (file))
- return (-1);
-
- err = opkg_conf_init (&opkg_conf, args);
- if (err)
- {
- return err;
- }
-
- /* we need to do this because of static declarations,
- * maybe a good idea to change */
- cmd = opkg_cmd_find (command);
- err = opkg_cmd_exec (cmd, &opkg_conf, 1, &file, NULL);
-
- opkg_conf_deinit(&opkg_conf);
- return(err);
-}
-
-#define opkg_package_whatdepends(args,file) opkg_file_what(args,file,"whatdepends")
-#define opkg_package_whatrecommends(args, file) opkg_file_what(args,file,"whatrecommends")
-#define opkg_package_whatprovides(args, file) opkg_file_what(args,file,"whatprovides")
-#define opkg_package_whatconflicts(args, file) opkg_file_what(args,file,"whatconflicts")
-#define opkg_package_whatreplaces(args, file) opkg_file_what(args,file,"whatreplaces")
-
-
int default_opkg_message_callback(opkg_conf_t *conf, message_level_t level,
char *msg)
{
typedef int (*opkg_list_callback)(char *name, char *desc, char *version,
pkg_state_status_t status, void *userdata);
typedef void (*opkg_progress_callback)(int complete, int total, void *userdata);
-
extern int opkg_op(int argc, char *argv[]); /* opkglib.c */
-extern int opkg_init (opkg_message_callback mcall,
- opkg_response_callback rcall,
- args_t * args);
-
-extern int opkg_deinit (args_t *args);
-extern int opkg_packages_list(args_t *args,
- const char *packages,
- opkg_list_callback cblist,
- void *userdata);
-extern int opkg_packages_status(args_t *args,
- const char *packages,
- opkg_status_callback cbstatus,
- void *userdata);
-extern int opkg_packages_info(args_t *args,
- const char *packages,
- opkg_status_callback cbstatus,
- void *userdata);
-extern int opkg_packages_install(args_t *args, const char *name);
-extern int opkg_packages_remove(args_t *args, const char *name, int purge);
-extern int opkg_lists_update(args_t *args);
-extern int opkg_packages_upgrade(args_t *args);
-extern int opkg_packages_download(args_t *args, const char *name);
-extern int opkg_package_files(args_t *args,
- const char *name,
- opkg_list_callback cblist,
- void *userdata);
-extern int opkg_file_search(args_t *args,
- const char *file,
- opkg_list_callback cblist,
- void *userdata);
-extern int opkg_package_whatdepends(args_t *args, const char *file);
-extern int opkg_package_whatrecommends(args_t *args, const char *file);
-extern int opkg_package_whatprovides(args_t *args, const char *file);
-extern int opkg_package_whatconflicts(args_t *args, const char *file);
-extern int opkg_package_whatreplaces(args_t *args, const char *file);
extern opkg_message_callback opkg_cb_message; /* opkg_message.c */
extern opkg_response_callback opkg_cb_response; /* user.c */
extern opkg_list_callback opkg_cb_list;
extern opkg_download_progress_callback opkg_cb_download_progress; /* opkg_download.c */
extern opkg_state_changed_callback opkg_cb_state_changed; /* opkg_state.c */
-
#endif
static int opkg_compare_versions_cmd(opkg_conf_t *conf, int argc, char **argv);
static int opkg_print_architecture_cmd(opkg_conf_t *conf, int argc, char **argv);
static int opkg_configure_cmd(opkg_conf_t *conf, int argc, char **argv);
+static int pkg_mark_provides(pkg_t *pkg);
/* XXX: CLEANUP: The usage strings should be incorporated into this
array for easier maintenance */
}
-/* scan the args passed and cache the local filenames of the packages */
-int opkg_multiple_files_scan(opkg_conf_t *conf, int argc, char **argv)
-{
- int i;
- int err;
-
- /*
- * First scan through package names/urls
- * For any urls, download the packages and install in database.
- * For any files, install package info in database.
- */
- for (i = 0; i < argc; i ++) {
- char *filename = argv [i];
- //char *tmp = basename (tmp);
- //int tmplen = strlen (tmp);
-
- //if (strcmp (tmp + (tmplen - strlen (OPKG_PKG_EXTENSION)), OPKG_PKG_EXTENSION) != 0)
- // continue;
- //if (strcmp (tmp + (tmplen - strlen (DPKG_PKG_EXTENSION)), DPKG_PKG_EXTENSION) != 0)
- // continue;
-
- opkg_message(conf, OPKG_DEBUG2, "Debug mfs: %s \n",filename );
-
- err = opkg_prepare_url_for_install(conf, filename, &argv[i]);
- if (err)
- return err;
- }
- return 0;
-}
-
struct opkg_intercept
{
char *oldpath;
typedef struct opkg_intercept *opkg_intercept_t;
-opkg_intercept_t opkg_prep_intercepts(opkg_conf_t *conf)
+static opkg_intercept_t opkg_prep_intercepts(opkg_conf_t *conf)
{
opkg_intercept_t ctx;
char *newpath;
return ctx;
}
-int opkg_finalize_intercepts(opkg_intercept_t ctx)
+static int opkg_finalize_intercepts(opkg_intercept_t ctx)
{
char *cmd;
DIR *dir;
used to end recursion and avoid an infinite loop on graph cycles.
pkg_vec ordered will finally contain the ordered set of packages.
*/
-int opkg_recurse_pkgs_in_order(opkg_conf_t *conf, pkg_t *pkg, pkg_vec_t *all,
+static int opkg_recurse_pkgs_in_order(opkg_conf_t *conf, pkg_t *pkg, pkg_vec_t *all,
pkg_vec_t *visited, pkg_vec_t *ordered)
{
int j,k,l,m;
}
-int opkg_configure_packages(opkg_conf_t *conf, char *pkg_name)
+static int opkg_configure_packages(opkg_conf_t *conf, char *pkg_name)
{
pkg_vec_t *all, *ordered, *visited;
int i;
return 0;
}
-int pkg_mark_provides(pkg_t *pkg)
+static int pkg_mark_provides(pkg_t *pkg)
{
int provides_count = pkg->provides_count;
abstract_pkg_t **provides = pkg->provides;