pkg: remove support for obsolete APKv1 (alpine-1.8 and earlier)
should not be needed anymore.cute-signatures
parent
0b795531a9
commit
1f985b9d0f
|
@ -145,19 +145,6 @@ int apk_pkg_parse_name(apk_blob_t apkname,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static apk_blob_t trim(apk_blob_t str)
|
|
||||||
{
|
|
||||||
if (str.ptr == NULL || str.len < 1)
|
|
||||||
return str;
|
|
||||||
|
|
||||||
if (str.ptr[str.len-1] == '\n') {
|
|
||||||
str.ptr[str.len-1] = 0;
|
|
||||||
return APK_BLOB_PTR_LEN(str.ptr, str.len-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
int apk_deps_add(struct apk_dependency_array **depends,
|
int apk_deps_add(struct apk_dependency_array **depends,
|
||||||
struct apk_dependency *dep)
|
struct apk_dependency *dep)
|
||||||
{
|
{
|
||||||
|
@ -615,7 +602,6 @@ struct read_info_ctx {
|
||||||
struct apk_database *db;
|
struct apk_database *db;
|
||||||
struct apk_package *pkg;
|
struct apk_package *pkg;
|
||||||
struct apk_sign_ctx *sctx;
|
struct apk_sign_ctx *sctx;
|
||||||
int version;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int apk_pkg_add_info(struct apk_database *db, struct apk_package *pkg,
|
int apk_pkg_add_info(struct apk_database *db, struct apk_package *pkg,
|
||||||
|
@ -695,21 +681,8 @@ static int read_info_line(void *ctx, apk_blob_t line)
|
||||||
static int read_info_entry(void *ctx, const struct apk_file_info *ae,
|
static int read_info_entry(void *ctx, const struct apk_file_info *ae,
|
||||||
struct apk_istream *is)
|
struct apk_istream *is)
|
||||||
{
|
{
|
||||||
static struct {
|
|
||||||
const char *str;
|
|
||||||
char field;
|
|
||||||
} fields[] = {
|
|
||||||
{ "DESC", 'T' },
|
|
||||||
{ "WWW", 'U' },
|
|
||||||
{ "LICENSE", 'L' },
|
|
||||||
{ "DEPEND", 'D' },
|
|
||||||
};
|
|
||||||
struct read_info_ctx *ri = (struct read_info_ctx *) ctx;
|
struct read_info_ctx *ri = (struct read_info_ctx *) ctx;
|
||||||
struct apk_database *db = ri->db;
|
|
||||||
struct apk_package *pkg = ri->pkg;
|
struct apk_package *pkg = ri->pkg;
|
||||||
apk_blob_t name, version;
|
|
||||||
char *slash;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* Meta info and scripts */
|
/* Meta info and scripts */
|
||||||
if (apk_sign_ctx_process_file(ri->sctx, ae, is) == 0)
|
if (apk_sign_ctx_process_file(ri->sctx, ae, is) == 0)
|
||||||
|
@ -721,7 +694,6 @@ static int read_info_entry(void *ctx, const struct apk_file_info *ae,
|
||||||
apk_blob_t blob = apk_blob_from_istream(is, ae->size);
|
apk_blob_t blob = apk_blob_from_istream(is, ae->size);
|
||||||
apk_blob_for_each_segment(blob, "\n", read_info_line, ctx);
|
apk_blob_for_each_segment(blob, "\n", read_info_line, ctx);
|
||||||
free(blob.ptr);
|
free(blob.ptr);
|
||||||
ri->version = 2;
|
|
||||||
} else if (strcmp(ae->name, ".INSTALL") == 0) {
|
} else if (strcmp(ae->name, ".INSTALL") == 0) {
|
||||||
apk_warning("Package '%s-%s' contains deprecated .INSTALL",
|
apk_warning("Package '%s-%s' contains deprecated .INSTALL",
|
||||||
pkg->name->name, pkg->version);
|
pkg->name->name, pkg->version);
|
||||||
|
@ -729,40 +701,6 @@ static int read_info_entry(void *ctx, const struct apk_file_info *ae,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strncmp(ae->name, "var/db/apk/", 11) == 0) {
|
|
||||||
/* APK 1.0 format */
|
|
||||||
ri->version = 1;
|
|
||||||
if (!S_ISREG(ae->mode))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
slash = strchr(&ae->name[11], '/');
|
|
||||||
if (slash == NULL)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (apk_pkg_parse_name(APK_BLOB_PTR_PTR(&ae->name[11], slash-1),
|
|
||||||
&name, &version) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (pkg->name == NULL)
|
|
||||||
pkg->name = apk_db_get_name(db, name);
|
|
||||||
if (pkg->version == NULL)
|
|
||||||
pkg->version = apk_blob_cstr(version);
|
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(fields); i++) {
|
|
||||||
if (strcmp(fields[i].str, slash+1) == 0) {
|
|
||||||
apk_blob_t blob = apk_blob_from_istream(is, ae->size);
|
|
||||||
apk_pkg_add_info(ri->db, ri->pkg, fields[i].field,
|
|
||||||
trim(blob));
|
|
||||||
free(blob.ptr);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (ri->version < 2) {
|
|
||||||
/* Version 1.x packages do not contain installed size
|
|
||||||
* in metadata, so we calculate it here */
|
|
||||||
pkg->installed_size += apk_calc_installed_size(ae->size);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -939,7 +877,6 @@ struct apk_package *apk_pkg_parse_index_entry(struct apk_database *db, apk_blob_
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ctx.db = db;
|
ctx.db = db;
|
||||||
ctx.version = 0;
|
|
||||||
|
|
||||||
apk_blob_for_each_segment(blob, "\n", parse_index_line, &ctx);
|
apk_blob_for_each_segment(blob, "\n", parse_index_line, &ctx);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue