Hi folks I'd like to upload libdebian-installer 0.77squeeze1. It includes one part of the minimal fix for the cdebootstrap md5sum problem and a new architecture string. Bastian -- ... bacteriological warfare ... hard to believe we were once foolish enough to play around with that. -- McCoy, "The Omega Glory", stardate unknown
diff --git a/debian/changelog b/debian/changelog index 91795ad..fdd8979 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +libdebian-installer (0.77squeeze1) UNRELEASED; urgency=low + + [ Martin Michlmayr ] + * Add support for Buffalo Linkstation LiveV3 (LS-CHL). Closes: #612168 + + [ Bastian Blank ] + * Add minimal support for SHA1 checksums in Release file parser. + (closes: #615883) + + -- Martin Michlmayr <tbm@cyrius.com> Wed, 23 Feb 2011 18:52:37 +0000 + libdebian-installer (0.77) unstable; urgency=low [ Milan Kupcevic ] diff --git a/include/debian-installer/release.h b/include/debian-installer/release.h index c1ff45b..b88efb7 100644 --- a/include/debian-installer/release.h +++ b/include/debian-installer/release.h @@ -43,7 +43,7 @@ struct di_release char *origin; /**< Origin field */ char *suite; /**< Suite field */ char *codename; /**< Codename field */ - di_hash_table *md5sum; /**< MD5Sum field, includes di_release_file */ + di_hash_table *md5sum; /**< checksum fields, includes di_release_file */ di_mem_chunk *release_file_mem_chunk; /**< @internal */ }; @@ -58,7 +58,7 @@ struct di_release_file di_rstring key; /**< @internal */ }; unsigned int size; /**< size */ - char *sum; /**< checksum, currently md5 or sha */ + char *sum[2]; /**< checksums, currently md5 and sha1 */ }; di_release *di_release_alloc (void); diff --git a/src/release.c b/src/release.c index 1352e06..cf3e10d 100644 --- a/src/release.c +++ b/src/release.c @@ -70,7 +70,15 @@ const di_parser_fieldinfo "MD5Sum", di_release_parser_read_file, NULL, - offsetof (di_release, md5sum) + 0 + ), + internal_di_release_parser_field_sha1 = + DI_PARSER_FIELDINFO + ( + "SHA1", + di_release_parser_read_file, + NULL, + 1 ); /** @@ -82,6 +90,7 @@ const di_parser_fieldinfo *di_release_parser_fieldinfo[] = &internal_di_release_parser_field_suite, &internal_di_release_parser_field_codename, &internal_di_release_parser_field_md5sum, + &internal_di_release_parser_field_sha1, NULL }; @@ -92,7 +101,8 @@ static void internal_di_release_file_destroy_func (void *data) di_release_file *file = data; di_free (file->filename); - di_free (file->sum); + di_free (file->sum[0]); + di_free (file->sum[1]); } /** @@ -158,11 +168,11 @@ void di_release_parser_read_file (data, fip, field_modifier, value, user_data) void *user_data __attribute__ ((unused)); { char *begin = value->string, *next = begin, *end = value->string + value->size; - char buf_sum[65], buf_filename[129]; + char *buf_sum, buf_filename[129]; int ret; size_t buf_size; di_release *release = *data; - di_hash_table *table = *(di_hash_table **)((char *)*data + fip->integer); + di_hash_table *table = release->md5sum; while (1) { @@ -170,16 +180,21 @@ void di_release_parser_read_file (data, fip, field_modifier, value, user_data) if (!next) next = end; - ret = sscanf (begin, "%64s %zu %128s", buf_sum, &buf_size, buf_filename); + ret = sscanf (begin, "%ms %zu %128s", &buf_sum, &buf_size, buf_filename); if (ret == 3) { - di_release_file *file = di_mem_chunk_alloc (release->release_file_mem_chunk); - file->key.string = strdup (buf_filename); - file->key.size = strlen (buf_filename); + di_rstring key = { buf_filename, strlen (buf_filename) }; + di_release_file *file = di_hash_table_lookup (table, &key); + if (!file) + { + file = di_mem_chunk_alloc0 (release->release_file_mem_chunk); + file->key.string = strdup (buf_filename); + file->key.size = strlen (buf_filename); + di_hash_table_insert (table, &file->key, file); + } file->size = buf_size; - file->sum = strdup (buf_sum); - di_hash_table_insert (table, &file->key, file); + file->sum[fip->integer] = buf_sum; } begin = next + 1; diff --git a/src/system/subarch-arm-linux.c b/src/system/subarch-arm-linux.c index 9728c0f..65b2239 100644 --- a/src/system/subarch-arm-linux.c +++ b/src/system/subarch-arm-linux.c @@ -47,6 +47,7 @@ static struct map map_hardware[] = { { "QNAP TS-109/TS-209", "orion5x" }, { "QNAP TS-409", "orion5x" }, { "HP Media Vault mv2120", "orion5x" }, + { "Buffalo Linkstation LiveV3 (LS-CHL)", "orion5x" }, { "Buffalo Linkstation Pro/Live", "orion5x" }, { "Marvell Orion-NAS Reference Design", "orion5x" }, { "Marvell Orion-2 Development Board", "orion5x" },
Attachment:
signature.asc
Description: Digital signature