FFe: update to 0.6.0 (MIR requirement)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libcbor (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
libcbor is a dependency of libfido2, which is being MIRed in bug #1864439. As such, libcbor was added to the same MIR.
The libcbor MIR was accepted on two conditions:
a) it's updated to 0.6.0[1]
b) its test suite is run at build time[2]
Both of these conditions are met in my linked MP[3]. The most important packaging changes are:
- test suite is run at package build time
- upstream changed the soname in 0.6.0 (ok so far), but in an overzelous way (it made the full 0.6.0 version part of the soname). I talked with upstream and they suggested a patch to make 0.6 part of the soname only. That patch I applied in our package, and had to rename the binary library package to libcbor0.6 (from libcbor0). See the MP[3] for details and links to the conversation with upstream;
- I fixed a ton of lintian issues. Current lintian -I --pedantic output is just:
I: libcbor source: testsuite-
P: libcbor source: file-contains-
The upstream release notes for each version are at [4]. Our update is from 0.5.0 in focal to 0.6.0 with the above changes. The security team was interested in all the fixes announced in 0.6.0.
One potential issue here is that ubuntu will be shipping a 0.6.0 package which produces a 0.6 version in the soname, whereas the exact same upstream versions uses 0.6.0 in the soname. I asked upstream if they preferred to make a new release. On one hand, upstream agreed[5], but at the same time didn't seem too worried[6]. You, dear release team member reviewer, are welcomed to chime in with what you think should be done :)
PPA with builds: https:/
The only reverse dependency of libcbor is libfido2-1 and libcbor itself in the form of the -dev package.
1. https:/
2. https:/
3. https:/
4. https:/
5. https:/
6. https:/
Related branches
- Christian Ehrhardt (community): Approve
- Canonical Server: Pending requested
-
Diff: 19287 lines (+7398/-7161)113 files modified.clang-format (+151/-0)
.gitignore (+1/-0)
.travis.yml (+46/-43)
CHANGELOG.md (+25/-6)
CMakeLists.txt (+16/-11)
CMakeModules/FindCMocka.cmake (+49/-0)
Doxyfile (+5/-5)
README.md (+64/-1)
clang-format.sh (+17/-0)
debian/changelog (+31/-0)
debian/control (+7/-5)
debian/copyright (+22/-18)
debian/libcbor0.6.symbols (+3/-1)
debian/patches/clarify-soname-versioning.patch (+45/-0)
debian/patches/series (+2/-0)
debian/patches/skip-custom-allocator-test.patch (+19/-0)
debian/rules (+4/-0)
debian/watch (+2/-4)
demo/hello_cbor.c (+2/-3)
dev/null (+0/-245)
doc/source/api/item_reference_counting.rst (+7/-7)
doc/source/api/type_0_1.rst (+1/-1)
doc/source/api/type_6.rst (+1/-1)
doc/source/api/type_7.rst (+1/-3)
doc/source/conf.py (+18/-15)
doc/source/development.rst (+94/-2)
doc/source/getting_started.rst (+2/-1)
doc/source/internal.rst (+12/-10)
doc/source/requirements.txt (+39/-1)
doc/source/rfc_conformance.rst (+1/-1)
examples/cjson2cbor.c (+121/-130)
examples/create_items.c (+22/-23)
examples/hello.c (+7/-8)
examples/readfile.c (+58/-63)
examples/sort.c (+21/-24)
examples/streaming_parser.c (+35/-42)
misc/hooks/pre-commit (+11/-7)
oss-fuzz/build.sh (+28/-0)
oss-fuzz/cbor_load_fuzzer.cc (+37/-0)
refresh_templates.sh (+3/-1)
release.sh (+2/-16)
src/CMakeLists.txt (+3/-3)
src/allocators.c (+6/-6)
src/cbor.c (+314/-358)
src/cbor.h (+14/-15)
src/cbor/arrays.c (+105/-127)
src/cbor/arrays.h (+17/-16)
src/cbor/bytestrings.c (+87/-88)
src/cbor/bytestrings.h (+24/-18)
src/cbor/callbacks.c (+73/-61)
src/cbor/callbacks.h (+68/-69)
src/cbor/common.c (+133/-161)
src/cbor/common.h (+95/-64)
src/cbor/data.h (+112/-92)
src/cbor/encoding.c (+127/-121)
src/cbor/encoding.h (+12/-12)
src/cbor/floats_ctrls.c (+151/-159)
src/cbor/floats_ctrls.h (+41/-40)
src/cbor/internal/builder_callbacks.c (+311/-293)
src/cbor/internal/builder_callbacks.h (+9/-9)
src/cbor/internal/encoders.c (+69/-83)
src/cbor/internal/encoders.h (+12/-8)
src/cbor/internal/loaders.c (+50/-69)
src/cbor/internal/loaders.h (+2/-2)
src/cbor/internal/memory_utils.c (+25/-27)
src/cbor/internal/memory_utils.h (+10/-8)
src/cbor/internal/stack.c (+18/-19)
src/cbor/internal/stack.h (+9/-8)
src/cbor/internal/unicode.c (+68/-43)
src/cbor/internal/unicode.h (+7/-9)
src/cbor/ints.c (+161/-177)
src/cbor/ints.h (+30/-24)
src/cbor/maps.c (+97/-113)
src/cbor/maps.h (+16/-12)
src/cbor/serialization.c (+236/-237)
src/cbor/serialization.h (+18/-15)
src/cbor/streaming.c (+653/-670)
src/cbor/streaming.h (+8/-10)
src/cbor/strings.c (+99/-99)
src/cbor/strings.h (+25/-18)
src/cbor/tags.c (+26/-28)
src/cbor/tags.h (+9/-8)
test/CMakeLists.txt (+8/-1)
test/assertions.c (+29/-25)
test/assertions.h (+11/-6)
test/bad_inputs_test.c (+75/-64)
test/callbacks_test.c (+23/-19)
test/cbor_serialize_test.c (+243/-253)
test/cbor_stream_decode_test.c (+521/-663)
test/copy_test.c (+163/-207)
test/cpp_linkage_test.cpp (+2/-6)
test/fuzz_test.c (+46/-60)
test/memory_allocation_test.c (+282/-0)
test/pretty_printer_test.c (+25/-24)
test/stream_expectations.c (+254/-306)
test/stream_expectations.h (+56/-54)
test/type_0_encoders_test.c (+48/-50)
test/type_0_test.c (+107/-120)
test/type_1_encoders_test.c (+49/-50)
test/type_1_test.c (+72/-83)
test/type_2_encoders_test.c (+21/-26)
test/type_2_test.c (+269/-250)
test/type_3_encoders_test.c (+21/-26)
test/type_3_test.c (+178/-176)
test/type_4_encoders_test.c (+33/-39)
test/type_4_test.c (+94/-103)
test/type_5_encoders_test.c (+20/-26)
test/type_5_test.c (+141/-158)
test/type_6_encoders_test.c (+17/-20)
test/type_6_test.c (+57/-72)
test/type_7_encoders_test.c (+66/-77)
test/type_7_test.c (+68/-78)
test/unicode_test.c (+17/-22)
I mistakenly uploaded right after the MP was approved, and forgot to wait for this FFe to be approved as well. Apologies.
"Thankfully" there is a NEW binary due to the soname change, so this won't hit proposed before that is sorted.