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