diff --git a/lib/libmport/bundle_read_install_pkg.c b/lib/libmport/bundle_read_install_pkg.c index 58d4df10f8f..4bda3746b48 100644 --- a/lib/libmport/bundle_read_install_pkg.c +++ b/lib/libmport/bundle_read_install_pkg.c @@ -530,7 +530,7 @@ do_actual_install(mportInstance *mport, mportBundleRead *bundle, mportPackageMet if (e->owner != NULL && e->group != NULL && e->owner[0] != '\0' && e->group[0] != '\0') { #ifdef DEBUG - fprintf(stderr, "owner %s and group %s\n", fm_owner, fm_group); + fprintf(stderr, "owner %s and group %s\n", e->owner, e->group); #endif if (chown(file, mport_get_uid(e->owner), mport_get_gid(e->group)) == -1) { diff --git a/lib/libmport/create_primative.c b/lib/libmport/create_primative.c index 8e6b25e5f33..8458b09ec51 100644 --- a/lib/libmport/create_primative.c +++ b/lib/libmport/create_primative.c @@ -172,7 +172,7 @@ insert_assetlist(sqlite3 *db, mportAssetList *assetlist, mportPackageMeta *pack, e->type == ASSET_FILE_OWNER_MODE) { /* Don't prepend cwd onto absolute file paths (this is useful for update) */ if (e->data[0] == '/') { - (void) strlcpy(file, e->data, FILENAME_MAX); + (void) snprintf(file, FILENAME_MAX, "%s%s", extra->sourcedir, e->data); } else { (void) snprintf(file, FILENAME_MAX, "%s/%s", cwd, e->data); } diff --git a/lib/libmport/index.c b/lib/libmport/index.c index 87fc3ade8d8..9e603904354 100644 --- a/lib/libmport/index.c +++ b/lib/libmport/index.c @@ -36,6 +36,7 @@ __MBSDID("$MidnightBSD$"); #include #include #include +#include static int index_is_recentish(void); static int index_last_checked_recentish(mportInstance *); @@ -209,9 +210,15 @@ int mport_index_get_mirror_list(mportInstance *mport, char ***list_p, int *list_ int ret, i; int len; sqlite3_stmt *stmt; + char *mirror_region; + + mirror_region = mport_setting_get(mport, MPORT_SETTING_MIRROR_REGION); + if (mirror_region == NULL) { + mirror_region = "us"; + } /* XXX the country is hard coded until a configuration system is created */ - if (mport_db_count(mport->db, &len, "SELECT COUNT(*) FROM idx.mirrors WHERE country='us'") != MPORT_OK) + if (mport_db_count(mport->db, &len, "SELECT COUNT(*) FROM idx.mirrors WHERE country=%Q", mirror_region) != MPORT_OK) RETURN_CURRENT_ERROR; *list_size = len; @@ -219,7 +226,7 @@ int mport_index_get_mirror_list(mportInstance *mport, char ***list_p, int *list_ *list_p = list; i = 0; - if (mport_db_prepare(mport->db, &stmt, "SELECT mirror FROM idx.mirrors WHERE country='us'") != MPORT_OK) { + if (mport_db_prepare(mport->db, &stmt, "SELECT mirror FROM idx.mirrors WHERE country=%Q", mirror_region) != MPORT_OK) { sqlite3_finalize(stmt); RETURN_CURRENT_ERROR; } diff --git a/lib/libmport/mport_private.h b/lib/libmport/mport_private.h index c93ba71119a..d72030dd4c8 100644 --- a/lib/libmport/mport_private.h +++ b/lib/libmport/mport_private.h @@ -47,6 +47,8 @@ #define MPORT_BUNDLE_VERSION 5 #define MPORT_BUNDLE_VERSION_STR "5" +#define MPORT_SETTING_MIRROR_REGION "mirror_region" + /* callback syntaxtic sugar */ void mport_call_msg_cb(mportInstance *, const char *, ...); void mport_call_progress_init_cb(mportInstance *, const char *, ...); @@ -172,7 +174,11 @@ int mport_set_errx(int , const char *, ...); #error "Unable to detect arch!" #endif -#if __MidnightBSD_version >= 100000 +#if __MidnightBSD_version >= 102000 +#define MPORT_OSVERSION "1.2" +#elif __MidnightBSD_version >= 101000 +#define MPORT_OSVERSION "1.1" +#elif __MidnightBSD_version >= 100000 #define MPORT_OSVERSION "1.0" #elif __MidnightBSD_version >= 9000 #define MPORT_OSVERSION "0.9"