auc: update to version 0.1.8
This fixes support for x86, auc now selects the right combined image depending on the system being booted in EFI mode or not. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
dfee9d005d
commit
1204cb82f9
2 changed files with 41 additions and 3 deletions
|
@ -5,7 +5,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=auc
|
PKG_NAME:=auc
|
||||||
PKG_VERSION:=0.1.7
|
PKG_VERSION:=0.1.8
|
||||||
PKG_RELEASE:=$(AUTORELEASE)
|
PKG_RELEASE:=$(AUTORELEASE)
|
||||||
PKG_LICENSE:=GPL-3.0
|
PKG_LICENSE:=GPL-3.0
|
||||||
|
|
||||||
|
|
|
@ -1356,7 +1356,24 @@ static int req_add_selected_packages(struct blob_buf *req)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int select_image(struct blob_attr *images, char **image_name, char **image_sha256)
|
#if defined(__amd64__) || defined(__i386__)
|
||||||
|
static int system_is_efi(void)
|
||||||
|
{
|
||||||
|
const char efidname[] = "/sys/firmware/efi/efivars";
|
||||||
|
int fd = open(efidname, O_DIRECTORY | O_PATH);
|
||||||
|
|
||||||
|
if (fd != -1) {
|
||||||
|
close(fd);
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline int system_is_efi(void) { return 0; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static int get_image_by_type(struct blob_attr *images, const char *typestr, char **image_name, char **image_sha256)
|
||||||
{
|
{
|
||||||
struct blob_attr *tb[__IMAGES_MAX];
|
struct blob_attr *tb[__IMAGES_MAX];
|
||||||
struct blob_attr *cur;
|
struct blob_attr *cur;
|
||||||
|
@ -1370,7 +1387,7 @@ static int select_image(struct blob_attr *images, char **image_name, char **imag
|
||||||
!tb[IMAGES_SHA256])
|
!tb[IMAGES_SHA256])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!strcmp(blobmsg_get_string(tb[IMAGES_TYPE]), "sysupgrade")) {
|
if (!strcmp(blobmsg_get_string(tb[IMAGES_TYPE]), typestr)) {
|
||||||
*image_name = strdup(blobmsg_get_string(tb[IMAGES_NAME]));
|
*image_name = strdup(blobmsg_get_string(tb[IMAGES_NAME]));
|
||||||
*image_sha256 = strdup(blobmsg_get_string(tb[IMAGES_SHA256]));
|
*image_sha256 = strdup(blobmsg_get_string(tb[IMAGES_SHA256]));
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
@ -1381,6 +1398,27 @@ static int select_image(struct blob_attr *images, char **image_name, char **imag
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int select_image(struct blob_attr *images, char **image_name, char **image_sha256)
|
||||||
|
{
|
||||||
|
const char *combined_type;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (system_is_efi())
|
||||||
|
combined_type = "combined-efi";
|
||||||
|
else
|
||||||
|
combined_type = "combined";
|
||||||
|
|
||||||
|
DPRINTF("images: %s\n", blobmsg_format_json_indent(images, true, 0));
|
||||||
|
|
||||||
|
ret = get_image_by_type(images, "sysupgrade", image_name, image_sha256);
|
||||||
|
if (!ret)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
ret = get_image_by_type(images, combined_type, image_name, image_sha256);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static bool validate_sha256(char *filename, char *sha256str)
|
static bool validate_sha256(char *filename, char *sha256str)
|
||||||
{
|
{
|
||||||
char *cmd = calloc(strlen(SHA256SUM) + 1 + strlen(filename) + 1, sizeof(char));
|
char *cmd = calloc(strlen(SHA256SUM) + 1 + strlen(filename) + 1, sizeof(char));
|
||||||
|
|
Loading…
Reference in a new issue