From 10e4b01d5a123eaeeedea31059098f97c496c6df Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 23 Oct 2015 01:17:12 -0700 Subject: [PATCH 1/4] update version to include iOS9 compatibility --- packages/network/libshairplay/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/network/libshairplay/package.mk b/packages/network/libshairplay/package.mk index db0b6db51f..e905374308 100644 --- a/packages/network/libshairplay/package.mk +++ b/packages/network/libshairplay/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="libshairplay" -PKG_VERSION="0f41ade" +PKG_VERSION="498bc5b" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" From 3c52d432ea9da69462f905edb15abbb8b111f786 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 14 Dec 2015 00:39:31 -0800 Subject: [PATCH 2/4] libaacs: add upstream patches --- ...rect-debug-log-in-_find_config_entry.patch | 52 ++++++++ ...e-logentry-in-case-of-corrupted-disc.patch | 43 +++++++ ...0003-mkb-fix-endless-loop-in-_record.patch | 114 ++++++++++++++++++ 3 files changed, 209 insertions(+) create mode 100644 packages/multimedia/libaacs/patches/libaacs-0001-correct-debug-log-in-_find_config_entry.patch create mode 100644 packages/multimedia/libaacs/patches/libaacs-0002-always-write-logentry-in-case-of-corrupted-disc.patch create mode 100644 packages/multimedia/libaacs/patches/libaacs-0003-mkb-fix-endless-loop-in-_record.patch diff --git a/packages/multimedia/libaacs/patches/libaacs-0001-correct-debug-log-in-_find_config_entry.patch b/packages/multimedia/libaacs/patches/libaacs-0001-correct-debug-log-in-_find_config_entry.patch new file mode 100644 index 0000000000..ca5c9b151a --- /dev/null +++ b/packages/multimedia/libaacs/patches/libaacs-0001-correct-debug-log-in-_find_config_entry.patch @@ -0,0 +1,52 @@ +From 1c0ba6b53759ea57a6146b4ce4d902cfe5c44d3c Mon Sep 17 00:00:00 2001 +From: Roland Fischer +Date: Wed, 9 Dec 2015 21:50:43 +0100 +Subject: [PATCH] Correct debug-log in _find_config_entry + +'discid' sent to BD_DEBUG has not been converted to string before +and resulted in a broken output - corrected. +--- + src/libaacs/aacs.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c +index ae85612..60e678f 100644 +--- a/src/libaacs/aacs.c ++++ b/src/libaacs/aacs.c +@@ -710,6 +710,7 @@ static void _find_config_entry(AACS *aacs, title_entry_list *ce, + uint8_t *mk, uint8_t *vuk) + { + char str[48]; ++ char str2[48]; + + aacs->uks = NULL; + aacs->num_uks = 0; +@@ -731,7 +732,7 @@ static void _find_config_entry(AACS *aacs, title_entry_list *ce, + hexstring_to_hex_array(mk, 16, ce->entry.mek); + + BD_DEBUG(DBG_AACS, "Found media key for %s: %s\n", +- ce->entry.discid, str_print_hex(str, mk, 16)); ++ str_print_hex(str2, ce->entry.discid, 20), str_print_hex(str, mk, 16)); + } + + if (ce->entry.vid) { +@@ -739,14 +740,14 @@ static void _find_config_entry(AACS *aacs, title_entry_list *ce, + ce->entry.vid); + + BD_DEBUG(DBG_AACS, "Found volume id for %s: %s\n", +- ce->entry.discid, str_print_hex(str, aacs->vid, 16)); ++ str_print_hex(str2, ce->entry.discid, 20), str_print_hex(str, aacs->vid, 16)); + } + + if (ce->entry.vuk) { + hexstring_to_hex_array(vuk, 16, ce->entry.vuk); + + BD_DEBUG(DBG_AACS, "Found volume unique key for %s: %s\n", +- ce->entry.discid, str_print_hex(str, vuk, 16)); ++ str_print_hex(str2, ce->entry.discid, 20), str_print_hex(str, vuk, 16)); + } + + if (ce->entry.uk) { +-- +1.7.10.4 + diff --git a/packages/multimedia/libaacs/patches/libaacs-0002-always-write-logentry-in-case-of-corrupted-disc.patch b/packages/multimedia/libaacs/patches/libaacs-0002-always-write-logentry-in-case-of-corrupted-disc.patch new file mode 100644 index 0000000000..52a6eb6ba5 --- /dev/null +++ b/packages/multimedia/libaacs/patches/libaacs-0002-always-write-logentry-in-case-of-corrupted-disc.patch @@ -0,0 +1,43 @@ +From 7ee3b64639358a35188339f4547f70f7d5c2c9c2 Mon Sep 17 00:00:00 2001 +From: Roland Fischer +Date: Wed, 9 Dec 2015 21:51:57 +0100 +Subject: [PATCH] Always write logentry in case of corrupted disc + +In case of a AACS_ERROR_CORRUPTED_DISC error always write a BD_DEBUG +message at DBG_CRIT loglevel. +--- + src/libaacs/aacs.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c +index 60e678f..1bd8ad5 100644 +--- a/src/libaacs/aacs.c ++++ b/src/libaacs/aacs.c +@@ -286,6 +286,7 @@ static int _calc_pk_mk(MKB *mkb, dk_list *dkl, uint8_t *mk) + num_uvs = len / 5; + + if (num_uvs < 1) { ++ BD_DEBUG(DBG_AACS | DBG_CRIT, "No UVS detected - corrupted disc\n"); + return AACS_ERROR_CORRUPTED_DISC; + } + +@@ -518,6 +519,7 @@ static int _calc_mk(AACS *aacs, uint8_t *mk, pk_list *pkl, dk_list *dkl) + return AACS_ERROR_NO_PK; + } + ++ BD_DEBUG(DBG_AACS | DBG_CRIT, "Error calculating media key - corrupted disc\n"); + return AACS_ERROR_CORRUPTED_DISC; + } + +@@ -829,7 +831,7 @@ static int _calc_uks(AACS *aacs, config_file *cf) + + file_seek(fp, f_pos, SEEK_SET); + if ((file_read(fp, buf, 16)) != 16) { +- BD_DEBUG(DBG_AACS, "Unit key %d: read error\n", i); ++ BD_DEBUG(DBG_AACS | DBG_CRIT, "Unit key %d: read error\n", i); + aacs->num_uks = i; + error_code = AACS_ERROR_CORRUPTED_DISC; + break; +-- +1.7.10.4 + diff --git a/packages/multimedia/libaacs/patches/libaacs-0003-mkb-fix-endless-loop-in-_record.patch b/packages/multimedia/libaacs/patches/libaacs-0003-mkb-fix-endless-loop-in-_record.patch new file mode 100644 index 0000000000..18fa9d7257 --- /dev/null +++ b/packages/multimedia/libaacs/patches/libaacs-0003-mkb-fix-endless-loop-in-_record.patch @@ -0,0 +1,114 @@ +From 972679a52f6a38f08c0bd0ea5c8a0d4750d6a8e8 Mon Sep 17 00:00:00 2001 +From: Roland Fischer +Date: Thu, 10 Dec 2015 20:47:02 +0100 +Subject: [PATCH] mkb: Fix endless loop in _record + +In case of a corrupt file it could happen that len get 0 in _record +and this results in an endless loop. +Created an exit condition for this case and fixed related +procedures too (they need to cope with the error-return-value +from _record). +Reason for change: https://github.com/OpenELEC/OpenELEC.tv/pull/4378 +--- + src/libaacs/mkb.c | 46 +++++++++++++++++++++++++++++++++++++++------- + 1 file changed, 39 insertions(+), 7 deletions(-) + +diff --git a/src/libaacs/mkb.c b/src/libaacs/mkb.c +index 275b269..4985c4d 100644 +--- a/src/libaacs/mkb.c ++++ b/src/libaacs/mkb.c +@@ -52,6 +52,12 @@ static const uint8_t *_record(MKB *mkb, uint8_t type, size_t *rec_len) + return mkb->buf + pos; + } + ++ if (len == 0) { ++ BD_DEBUG(DBG_MKB, "Couldn't retrieve MKB record 0x%02x - len=0 (%p)\n", type, ++ (void*)(mkb->buf + pos)); ++ break; ++ } ++ + pos += len; + } + +@@ -108,6 +114,10 @@ uint8_t mkb_type(MKB *mkb) + { + const uint8_t *rec = _record(mkb, 0x10, NULL); + ++ if (!rec) { ++ return 0; ++ } ++ + return MKINT_BE32(rec + 4); + } + +@@ -115,6 +125,10 @@ uint32_t mkb_version(MKB *mkb) + { + const uint8_t *rec = _record(mkb, 0x10, NULL); + ++ if (!rec) { ++ return 0; ++ } ++ + return MKINT_BE32(rec + 8); + } + +@@ -152,31 +166,49 @@ const uint8_t *mkb_drive_revokation_entries(MKB *mkb, size_t *len) + + const uint8_t *mkb_subdiff_records(MKB *mkb, size_t *len) + { +- const uint8_t *rec = _record(mkb, 0x04, len) + 4; +- *len -= 4; ++ const uint8_t *rec = _record(mkb, 0x04, len); ++ ++ if (rec) { ++ rec += 4; ++ *len -= 4; ++ } + + return rec; + } + + const uint8_t *mkb_cvalues(MKB *mkb, size_t *len) + { +- const uint8_t *rec = _record(mkb, 0x05, len) + 4; +- *len -= 4; ++ const uint8_t *rec = _record(mkb, 0x05, len); ++ ++ if (rec) { ++ rec += 4; ++ *len -= 4; ++ } + + return rec; + } + + const uint8_t *mkb_mk_dv(MKB *mkb) + { +- return _record(mkb, 0x81, NULL) + 4; ++ const uint8_t *rec = _record(mkb, 0x81, NULL); ++ ++ if (rec) { ++ rec += 4; ++ } ++ ++ return rec; + } + + const uint8_t *mkb_signature(MKB *mkb, size_t *len) + { + const uint8_t *rec = _record(mkb, 0x02, len); +- *len -= 4; + +- return rec + 4; ++ if (rec) { ++ rec += 4; ++ *len -= 4; ++ } ++ ++ return rec; + + } + +-- +1.7.10.4 + From 587778c0696d344a6faf0e994685adfde16e29a1 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Tue, 15 Dec 2015 08:46:57 -0800 Subject: [PATCH 3/4] mesa: update to 11.0.7 --- packages/graphics/mesa/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk index 30416a0f37..c7b5e16aeb 100644 --- a/packages/graphics/mesa/package.mk +++ b/packages/graphics/mesa/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="mesa" -PKG_VERSION="11.0.6" +PKG_VERSION="11.0.7" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" From e2ad663fabdcd78b4e88fc00937607bc00cdcc17 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Tue, 15 Dec 2015 09:30:30 -0800 Subject: [PATCH 4/4] bcm2835-driver: update to version 6b7cebd --- packages/graphics/bcm2835-driver/package.mk | 2 +- packages/tools/bcm2835-bootloader/package.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/graphics/bcm2835-driver/package.mk b/packages/graphics/bcm2835-driver/package.mk index 8552c2cb3d..bd98bc03c6 100644 --- a/packages/graphics/bcm2835-driver/package.mk +++ b/packages/graphics/bcm2835-driver/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="bcm2835-driver" -PKG_VERSION="7f01b12" +PKG_VERSION="6b7cebd" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="nonfree" diff --git a/packages/tools/bcm2835-bootloader/package.mk b/packages/tools/bcm2835-bootloader/package.mk index ff6ee0af6b..4ff042ad85 100644 --- a/packages/tools/bcm2835-bootloader/package.mk +++ b/packages/tools/bcm2835-bootloader/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="bcm2835-bootloader" -PKG_VERSION="7f01b12" +PKG_VERSION="6b7cebd" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="nonfree"