git: b5b9517bfe39 - main - libcbor: Update to 0.13.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 23 Mar 2026 15:42:23 UTC
The branch main has been updated by emaste:
URL: https://cgit.FreeBSD.org/src/commit/?id=b5b9517bfe394e55088f5a05882eabae7e9b7b29
commit b5b9517bfe394e55088f5a05882eabae7e9b7b29
Merge: fce6921464b5 0427abbc78cf
Author: Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2026-03-23 15:41:51 +0000
Commit: Ed Maste <emaste@FreeBSD.org>
CommitDate: 2026-03-23 15:41:51 +0000
libcbor: Update to 0.13.0
Sponsored by: The FreeBSD Foundation
contrib/libcbor/.circleci/config.yml | 93 +++--
contrib/libcbor/.cirrus.yml | 9 +-
contrib/libcbor/.clang-format | 2 +-
contrib/libcbor/.github/workflows/fuzz-pr.yml | 2 +-
contrib/libcbor/.github/workflows/fuzz.yml | 2 +-
contrib/libcbor/.gitignore | 6 +-
contrib/libcbor/.vscode/settings.json | 6 +
contrib/libcbor/BUILD | 58 +++
contrib/libcbor/Bazel.md | 100 -----
contrib/libcbor/CHANGELOG.md | 81 +++-
contrib/libcbor/CMakeLists.txt | 341 +++++++++++------
contrib/libcbor/CONTRIBUTING.md | 17 +
contrib/libcbor/Doxyfile | 2 +-
contrib/libcbor/MODULE.bazel | 1 +
contrib/libcbor/README.md | 53 ++-
contrib/libcbor/doc/source/api.rst | 14 +-
.../doc/source/api/item_reference_counting.rst | 1 +
.../libcbor/doc/source/api/streaming_encoding.rst | 2 +-
.../api/{type_0_1.rst => type_0_1_integers.rst} | 0
.../api/{type_2.rst => type_2_byte_strings.rst} | 2 +-
.../source/api/{type_3.rst => type_3_strings.rst} | 2 +-
.../source/api/{type_4.rst => type_4_arrays.rst} | 2 +-
.../doc/source/api/{type_5.rst => type_5_maps.rst} | 0
.../doc/source/api/{type_6.rst => type_6_tags.rst} | 7 +-
.../api/{type_7.rst => type_7_floats_ctrls.rst} | 9 +-
contrib/libcbor/doc/source/conf.py | 4 +-
contrib/libcbor/doc/source/development.rst | 18 +-
contrib/libcbor/doc/source/getting_started.rst | 76 +++-
contrib/libcbor/doc/source/index.rst | 4 +-
contrib/libcbor/doc/source/internal.rst | 6 +-
contrib/libcbor/doc/source/requirements.in | 5 +
contrib/libcbor/doc/source/requirements.txt | 114 ++++--
.../libcbor/doc/source/standard_conformance.rst | 2 +-
contrib/libcbor/doc/source/tutorial.rst | 66 ++++
contrib/libcbor/doc/source/using.rst | 174 ---------
contrib/libcbor/examples/CMakeLists.txt | 19 +-
contrib/libcbor/examples/bazel/MODULE.bazel | 13 +
contrib/libcbor/examples/bazel/WORKSPACE | 19 -
contrib/libcbor/examples/bazel/src/BUILD | 10 +-
contrib/libcbor/examples/bazel/src/hello_test.cc | 10 +-
.../examples/bazel/third_party/libcbor.BUILD | 21 --
.../bazel/third_party/libcbor/cbor/configuration.h | 2 +-
contrib/libcbor/examples/cbor2cjson.c | 3 +-
contrib/libcbor/examples/cbor_sequence.c | 109 ++++++
contrib/libcbor/examples/cjson2cbor.c | 32 +-
contrib/libcbor/examples/crash_course.c | 183 +++++++++
contrib/libcbor/examples/sort.c | 12 +-
contrib/libcbor/examples/streaming_array.c | 3 +-
contrib/libcbor/examples/streaming_parser.c | 8 +-
contrib/libcbor/misc/asan_suppressions.osx.supp | 3 +
contrib/libcbor/misc/hooks/pre-commit | 9 +-
contrib/libcbor/misc/update_version.py | 14 +-
contrib/libcbor/oss-fuzz/build.sh | 10 +-
contrib/libcbor/oss-fuzz/cbor_load_fuzzer.cc | 2 +-
contrib/libcbor/release.sh | 20 +-
contrib/libcbor/src/CMakeLists.txt | 108 ++++--
contrib/libcbor/src/cbor.c | 196 ++++++++--
contrib/libcbor/src/cbor.h | 11 +
contrib/libcbor/src/cbor/arrays.c | 53 +--
contrib/libcbor/src/cbor/arrays.h | 3 +-
contrib/libcbor/src/cbor/bytestrings.c | 44 +--
contrib/libcbor/src/cbor/bytestrings.h | 26 +-
contrib/libcbor/src/cbor/callbacks.c | 86 ++---
contrib/libcbor/src/cbor/callbacks.h | 68 ++--
contrib/libcbor/src/cbor/common.c | 82 ++--
contrib/libcbor/src/cbor/common.h | 138 ++++---
contrib/libcbor/src/cbor/encoding.c | 80 ++--
contrib/libcbor/src/cbor/encoding.h | 71 ++--
contrib/libcbor/src/cbor/floats_ctrls.c | 94 ++---
contrib/libcbor/src/cbor/floats_ctrls.h | 53 +--
.../libcbor/src/cbor/internal/builder_callbacks.c | 160 ++++----
.../libcbor/src/cbor/internal/builder_callbacks.h | 54 +--
contrib/libcbor/src/cbor/internal/encoders.c | 47 +--
contrib/libcbor/src/cbor/internal/encoders.h | 10 +-
contrib/libcbor/src/cbor/internal/loaders.c | 16 +-
contrib/libcbor/src/cbor/internal/loaders.h | 8 +-
contrib/libcbor/src/cbor/internal/stack.c | 10 +-
contrib/libcbor/src/cbor/internal/stack.h | 10 +-
contrib/libcbor/src/cbor/ints.c | 98 ++---
contrib/libcbor/src/cbor/ints.h | 48 +--
contrib/libcbor/src/cbor/maps.c | 36 +-
contrib/libcbor/src/cbor/maps.h | 26 +-
contrib/libcbor/src/cbor/serialization.c | 75 ++--
contrib/libcbor/src/cbor/serialization.h | 31 +-
contrib/libcbor/src/cbor/streaming.c | 11 +-
contrib/libcbor/src/cbor/strings.c | 56 +--
contrib/libcbor/src/cbor/strings.h | 37 +-
contrib/libcbor/src/cbor/tags.c | 26 +-
contrib/libcbor/src/cbor/tags.h | 48 +--
contrib/libcbor/src/libcborConfig.cmake.in | 3 +
contrib/libcbor/test/CMakeLists.txt | 36 +-
contrib/libcbor/test/array_encoders_test.c | 14 +-
contrib/libcbor/test/array_test.c | 50 +--
contrib/libcbor/test/bad_inputs_test.c | 20 +-
contrib/libcbor/test/bytestring_encoders_test.c | 6 +-
contrib/libcbor/test/bytestring_test.c | 46 +--
contrib/libcbor/test/callbacks_test.c | 75 ++--
contrib/libcbor/test/cbor_serialize_test.c | 272 +++++++-------
contrib/libcbor/test/cbor_stream_decode_test.c | 110 +++---
contrib/libcbor/test/copy_test.c | 411 +++++++++++++++++++--
contrib/libcbor/test/float_ctrl_encoders_test.c | 34 +-
contrib/libcbor/test/float_ctrl_test.c | 41 +-
contrib/libcbor/test/fuzz_test.c | 12 +-
contrib/libcbor/test/map_encoders_test.c | 6 +-
contrib/libcbor/test/map_test.c | 76 ++--
contrib/libcbor/test/memory_utils_test.c | 10 +-
contrib/libcbor/test/negint_encoders_test.c | 12 +-
contrib/libcbor/test/negint_test.c | 14 +-
contrib/libcbor/test/pretty_printer_test.c | 64 ++--
contrib/libcbor/test/stack_over_limit_test.c | 8 +-
contrib/libcbor/test/stream_expectations.c | 50 +--
contrib/libcbor/test/stream_expectations.h | 50 +--
contrib/libcbor/test/string_encoders_test.c | 6 +-
contrib/libcbor/test/string_test.c | 62 ++--
contrib/libcbor/test/tag_encoders_test.c | 4 +-
contrib/libcbor/test/tag_test.c | 36 +-
contrib/libcbor/test/test_allocator.c | 16 +-
contrib/libcbor/test/test_allocator.h | 8 +-
contrib/libcbor/test/uint_encoders_test.c | 12 +-
contrib/libcbor/test/uint_test.c | 22 +-
contrib/libcbor/test/unicode_test.c | 4 +-
121 files changed, 3254 insertions(+), 2039 deletions(-)
diff --cc contrib/libcbor/.cirrus.yml
index 948ae23b4a98,000000000000..beaea2a0b6ee
mode 100644,000000..100644
--- a/contrib/libcbor/.cirrus.yml
+++ b/contrib/libcbor/.cirrus.yml
@@@ -1,26 -1,0 +1,25 @@@
+freebsd_task:
+ install_script:
+ - ASSUME_ALWAYS_YES=yes pkg bootstrap -f && pkg install -y cmocka cmake ninja
+ build_script:
+ - mkdir build
+ - cd build
+ - cmake -GNinja -DWITH_TESTS=ON
- -DCBOR_CUSTOM_ALLOC=ON
+ -DCMAKE_BUILD_TYPE=Debug
+ -DSANITIZE=OFF
+ ..
+ - ninja -j $(sysctl -n hw.ncpu)
+ test_script:
+ - cd build
+ - ctest -VV
+ matrix:
+ # From gcloud compute images list --project freebsd-org-cloud-dev --no-standard-images
- - name: freebsd-13-2
++ - name: freebsd-13-4
+ freebsd_instance:
- image_family: freebsd-13-2
- - name: freebsd-14-0
++ image_family: freebsd-13-4
++ - name: freebsd-14-2
+ freebsd_instance:
- image_family: freebsd-14-0
++ image_family: freebsd-14-2
+ - name: freebsd-15-0-snap
+ freebsd_instance:
+ image_family: freebsd-15-0-snap
diff --cc contrib/libcbor/.clang-format
index de0dc5e77907,000000000000..09a8bc907ac8
mode 100644,000000..100644
--- a/contrib/libcbor/.clang-format
+++ b/contrib/libcbor/.clang-format
@@@ -1,151 -1,0 +1,151 @@@
+---
+Language: Cpp
+# BasedOnStyle: Google
+AccessModifierOffset: -1
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignEscapedNewlines: Left
+AlignOperands: true
+AlignTrailingComments: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortBlocksOnASingleLine: false
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: All
+AllowShortIfStatementsOnASingleLine: true
+AllowShortLoopsOnASingleLine: true
+AlwaysBreakAfterDefinitionReturnType: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: true
+AlwaysBreakTemplateDeclarations: true
+BinPackArguments: true
+BinPackParameters: true
+BraceWrapping:
+ AfterClass: false
+ AfterControlStatement: false
+ AfterEnum: false
+ AfterFunction: false
+ AfterNamespace: false
+ AfterObjCDeclaration: false
+ AfterStruct: false
+ AfterUnion: false
+ AfterExternBlock: false
+ BeforeCatch: false
+ BeforeElse: false
+ IndentBraces: false
+ SplitEmptyFunction: true
+ SplitEmptyRecord: true
+ SplitEmptyNamespace: true
+BreakBeforeBinaryOperators: None
+BreakBeforeBraces: Attach
+BreakBeforeInheritanceComma: false
+BreakInheritanceList: BeforeColon
+BreakBeforeTernaryOperators: true
+BreakConstructorInitializersBeforeComma: false
+BreakConstructorInitializers: BeforeColon
+BreakAfterJavaFieldAnnotations: false
+BreakStringLiterals: true
+ColumnLimit: 80
+CommentPragmas: '^ IWYU pragma:'
+CompactNamespaces: false
+ConstructorInitializerAllOnOneLineOrOnePerLine: true
+ConstructorInitializerIndentWidth: 4
+ContinuationIndentWidth: 4
+Cpp11BracedListStyle: true
- DerivePointerAlignment: true
++DerivePointerAlignment: false
+DisableFormat: false
+ExperimentalAutoDetectBinPacking: false
+FixNamespaceComments: true
+ForEachMacros:
+ - foreach
+ - Q_FOREACH
+ - BOOST_FOREACH
+IncludeBlocks: Preserve
+IncludeCategories:
+ - Regex: '^<ext/.*\.h>'
+ Priority: 2
+ - Regex: '^<.*\.h>'
+ Priority: 1
+ - Regex: '^<.*'
+ Priority: 2
+ - Regex: '.*'
+ Priority: 3
+IncludeIsMainRegex: '([-_](test|unittest))?$'
+IndentCaseLabels: true
+IndentPPDirectives: None
+IndentWidth: 2
+IndentWrappedFunctionNames: false
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+MacroBlockBegin: ''
+MacroBlockEnd: ''
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+ObjCBinPackProtocolList: Never
+ObjCBlockIndentWidth: 2
+ObjCSpaceAfterProperty: false
+ObjCSpaceBeforeProtocolList: true
+PenaltyBreakAssignment: 2
+PenaltyBreakBeforeFirstCallParameter: 1
+PenaltyBreakComment: 300
+PenaltyBreakFirstLessLess: 120
+PenaltyBreakString: 1000
+PenaltyBreakTemplateDeclaration: 10
+PenaltyExcessCharacter: 1000000
+PenaltyReturnTypeOnItsOwnLine: 200
+PointerAlignment: Left
+RawStringFormats:
+ - Language: Cpp
+ Delimiters:
+ - cc
+ - CC
+ - cpp
+ - Cpp
+ - CPP
+ - 'c++'
+ - 'C++'
+ CanonicalDelimiter: ''
+ BasedOnStyle: google
+ - Language: TextProto
+ Delimiters:
+ - pb
+ - PB
+ - proto
+ - PROTO
+ EnclosingFunctions:
+ - EqualsProto
+ - EquivToProto
+ - PARSE_PARTIAL_TEXT_PROTO
+ - PARSE_TEST_PROTO
+ - PARSE_TEXT_PROTO
+ - ParseTextOrDie
+ - ParseTextProtoOrDie
+ CanonicalDelimiter: ''
+ BasedOnStyle: google
+ReflowComments: true
+SortIncludes: true
+SortUsingDeclarations: true
+SpaceAfterCStyleCast: false
+SpaceAfterTemplateKeyword: true
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeCpp11BracedList: false
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
+SpaceBeforeParens: ControlStatements
+SpaceBeforeRangeBasedForLoopColon: true
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 2
+SpacesInAngles: false
+SpacesInContainerLiterals: true
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+SpacesInSquareBrackets: false
+Standard: Auto
+StatementMacros:
+ - Q_UNUSED
+ - QT_REQUIRE_VERSION
+TabWidth: 8
+UseTab: Never
+...
+
diff --cc contrib/libcbor/.gitignore
index 61f88a874965,000000000000..cfc2f906bd0a
mode 100644,000000..100644
--- a/contrib/libcbor/.gitignore
+++ b/contrib/libcbor/.gitignore
@@@ -1,16 -1,0 +1,18 @@@
- build
+*~
+nbproject
+.idea
+doxygen_docs
+*/*.out
+cmake-build-debug
+venv
+**.DS_Store
- .vscode
++.vscode/tmp
++.vscode/c_cpp_properties.json
++doc/build
+# No top-level requirements, see doc/source
+requirements.txt
+examples/bazel/bazel-bazel
+examples/bazel/bazel-bin
+examples/bazel/bazel-out
+examples/bazel/bazel-testlogs
++**MODULE.bazel.lock
diff --cc contrib/libcbor/.vscode/settings.json
index 000000000000,1efd1526d101..1efd1526d101
mode 000000,100644..100644
--- a/contrib/libcbor/.vscode/settings.json
+++ b/contrib/libcbor/.vscode/settings.json
diff --cc contrib/libcbor/BUILD
index 000000000000,5035c90f756b..5035c90f756b
mode 000000,100644..100644
--- a/contrib/libcbor/BUILD
+++ b/contrib/libcbor/BUILD
diff --cc contrib/libcbor/CONTRIBUTING.md
index 9bd42a06b6dc,000000000000..c0f0da6029ca
mode 100644,000000..100644
--- a/contrib/libcbor/CONTRIBUTING.md
+++ b/contrib/libcbor/CONTRIBUTING.md
@@@ -1,35 -1,0 +1,52 @@@
+# Contributing to libcbor
+
+libcbor is maintained by [@PJK](https://github.com/PJK) in his spare time on a best-effort basis.
+
+Community contributions are welcome as long as they align with the [project priorities](https://github.com/PJK/libcbor#main-features) and [goals](https://libcbor.readthedocs.io/en/latest/development.html#goals) and follow the guidelines described below.
+
+## Principles
+
+**Bug reports and questions:** Bug reports and specific technical questions are always welcome. Feel free to open an [issue](https://github.com/PJK/libcbor/issues).
+
+**Incremental improvements:** Bug fixes (including build scripts, examples, test, typos, CI/CD config, etc.) and documentation improvements (fixes of typos, inaccuracies, out of date content, etc.) are always welcome. Feel free to open a [PR](https://github.com/PJK/libcbor/pulls).
+
+**New features:** I am looking to keep the scope of libcbor small. If you would like to add a feature, please open an issue with your proposal (or reach out to me privately) to discuss if the feature fits into libcbor before opening a PR.
+
+**Major changes:** Please open an issue with your proposal (or reach out to me privately) to discuss if the improvement fits into cbor before opening a PR.
+
+## Pull Request Process
+
+1. Ensure that all CI checks pass
+2. Check that the PR is complete and of good quality
+ - Include a descriptive summary of the change. If the PR addresses an open issue, please link it.
+ - Code changes: Add tests
+ - If necessary: Update documentation, including any links
+3. Code changes: Update [the changelog](https://github.com/PJK/libcbor/blob/master/CHANGELOG.md). Do *not* change the version number.
+
+## Interactions
+
+I work on libcbor on a best effort basis. The typical response time is a few days.
+
+If you do not receive a response in a few weeks, feel free to ping the PR or issue.
+
++## Coding style
++
++C++ code: `./clang-format.sh`.
++
++Function Doxygen strings:
++```c
++/** An example short description
++ *
++ * @param item The item to fooify. Describe any expectations on it (e.g."must
++ * be a valid array") and reference counting manipulation.
++ * Multi-line descriptions are OK where necessary.
++ * @param target_item Short description, always with a full stop.
++ * @return Has fooification succeeded? List any special cases.
++ */
++ bool foo(cbor_item_t *item, cbor_item_t *target_item);
++```
++
+## Resources
+
+- [Development documentation](https://libcbor.readthedocs.io/en/latest/development.html)
+
diff --cc contrib/libcbor/MODULE.bazel
index 000000000000,fbc208ab2397..fbc208ab2397
mode 000000,100644..100644
--- a/contrib/libcbor/MODULE.bazel
+++ b/contrib/libcbor/MODULE.bazel
diff --cc contrib/libcbor/README.md
index ea54bed9437b,000000000000..62d37b6b957d
mode 100644,000000..100644
--- a/contrib/libcbor/README.md
+++ b/contrib/libcbor/README.md
@@@ -1,121 -1,0 +1,152 @@@
+# [libcbor](https://github.com/PJK/libcbor)
+
+[](https://circleci.com/gh/PJK/libcbor/tree/master)
+[](https://readthedocs.org/projects/libcbor/?badge=latest)
+[](https://repology.org/project/libcbor/versions)
+[](https://codecov.io/gh/PJK/libcbor)
+
+**libcbor** is a C library for parsing and generating [CBOR](https://cbor.io/), the general-purpose schema-less binary data format.
+
+## Main features
- - Complete [IETF RFC 8949 (STD 94)](https://www.rfc-editor.org/info/std94) conformance
- - Robust platform-independent C99 implementation
- - Layered architecture offers both control and convenience
- - Flexible memory management
- - No shared global state - threading friendly
- - Proper handling of UTF-8
- - Full support for streams & incremental processing
- - Extensive documentation and test suite
- - No runtime dependencies, small footprint
-
++
++- Complete CBOR [IETF RFC 8949 (STD 94)](https://www.rfc-editor.org/info/std94) specification conformance (previously known as [RFC 7049](https://www.rfc-editor.org/info/rfc7049))
++- Supports CBOR Sequences ([RFC 8742](https://datatracker.ietf.org/doc/html/rfc8742))
++- Robust platform-independent C99 implementation, tested on
++ - Linux, OS X, Windows, BSD
++ - x86(_64), arm(64), mips(el), riscv64
++- Layered architecture offers both control and convenience
++- Flexible memory management
++- No shared global state - threading friendly
++- Proper handling of UTF-8
++- Full support for streams & incremental processing
++- Extensive documentation and test suite
++- No runtime dependencies, small footprint
++
++## References
++
++libcbor is most prominently used in:
++
++- Yubico's [libfido2](https://developers.yubico.com/libfido2/) 2FA security key implementation
++- Amazon's [AWS C SDK](https://github.com/awslabs/aws-c-common)
++- Gnome [fwdup](https://github.com/fwupd/fwupd/blob/main/meson.build#L339)
++- Alibaba's [Inclavare librats](https://github.com/inclavare-containers/librats)
++- [QEMU](https://wiki.qemu.org/ChangeLog/9.2)
++- [ITK](https://docs.itk.org/projects/wasm/en/latest/introduction/parts.html)
++
++It found its way into many open source an proprietary projects. If you run among others [OpenSSH](https://www.matbra.com/2020/02/17/using-fido2-with-ssh.html), [Microsoft PowerShell](https://github.com/PowerShell/libcbor), [SteamOS](https://github.com/randombk/steamos-teardown/blob/5a37d977fae55d9c41eaf1d07528fa965740bb26/docs/packages.md?plain=1#L461), or [MySQL](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-34.html) -- you might be indirectly running libcbor too.
++
++Also, thank you for the shout out in <https://github.com/oz123/awesome-c?tab=readme-ov-file#others>!
++
+## Getting started
+
+### Compile from source
+
+```bash
+git clone https://github.com/PJK/libcbor
+cmake -DCMAKE_BUILD_TYPE=Release libcbor
+make
+make install
+```
+
+### Homebrew
+
+```bash
+brew install libcbor
+```
+
+### Ubuntu 18.04 and above
+
+```bash
+sudo add-apt-repository universe
+sudo apt-get install libcbor-dev
+```
+
+### Fedora & RPM friends
+
+```bash
+yum install libcbor-devel
+```
+
- ### Others
++### Include git repository using using CMake
++
++See e.g. <https://github.com/inclavare-containers/librats/blob/master/cmake/LibCBOR.cmake>.
++
++## Include git repository using Bazel
++
++See <https://github.com/PJK/libcbor/tree/master/examples/bazel>.
++
++### Others
+
+<details>
+ <summary>Packaged libcbor is available from 15+ major repositories. Click here for more detail</summary>
+
+ [](https://repology.org/project/libcbor/versions)
+</details>
+
+## Usage example
+
+```c
+#include <cbor.h>
+#include <stdio.h>
+
+int main(void) {
+ /* Preallocate the map structure */
+ cbor_item_t* root = cbor_new_definite_map(2);
+ /* Add the content */
+ bool success = cbor_map_add(
+ root, (struct cbor_pair){
+ .key = cbor_move(cbor_build_string("Is CBOR awesome?")),
+ .value = cbor_move(cbor_build_bool(true))});
+ success &= cbor_map_add(
+ root, (struct cbor_pair){
+ .key = cbor_move(cbor_build_uint8(42)),
+ .value = cbor_move(cbor_build_string("Is the answer"))});
+ if (!success) return 1;
+ /* Output: `length` bytes of data in the `buffer` */
+ unsigned char* buffer;
+ size_t buffer_size;
+ cbor_serialize_alloc(root, &buffer, &buffer_size);
+
+ fwrite(buffer, 1, buffer_size, stdout);
+ free(buffer);
+
+ fflush(stdout);
+ cbor_decref(&root);
+}
+```
+
+## Documentation
++
++Crash course: <https://libcbor.readthedocs.io/en/latest/tutorial.html#crash-course>
++
+Get the latest documentation at [libcbor.readthedocs.org](http://libcbor.readthedocs.org/)
+
+## Contributions
+
+Bug reports and contributions are welcome. Please see [CONTRIBUTING.md](https://github.com/PJK/libcbor/blob/master/CONTRIBUTING.md) for more info.
+
+Kudos to all the [contributors](https://github.com/PJK/libcbor/graphs/contributors)!
+
+## License
++
+The MIT License (MIT)
+
+Copyright (c) Pavel Kalvoda, 2014-2020
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --cc contrib/libcbor/doc/source/requirements.in
index 000000000000,000ba6286d17..000ba6286d17
mode 000000,100644..100644
--- a/contrib/libcbor/doc/source/requirements.in
+++ b/contrib/libcbor/doc/source/requirements.in
diff --cc contrib/libcbor/doc/source/tutorial.rst
index 000000000000,81859ccb2192..81859ccb2192
mode 000000,100644..100644
--- a/contrib/libcbor/doc/source/tutorial.rst
+++ b/contrib/libcbor/doc/source/tutorial.rst
diff --cc contrib/libcbor/examples/bazel/MODULE.bazel
index 000000000000,5d14df5cf761..5d14df5cf761
mode 000000,100644..100644
--- a/contrib/libcbor/examples/bazel/MODULE.bazel
+++ b/contrib/libcbor/examples/bazel/MODULE.bazel
diff --cc contrib/libcbor/examples/cbor_sequence.c
index 000000000000,02c43185ff58..02c43185ff58
mode 000000,100644..100644
--- a/contrib/libcbor/examples/cbor_sequence.c
+++ b/contrib/libcbor/examples/cbor_sequence.c
diff --cc contrib/libcbor/examples/crash_course.c
index 000000000000,4bd9f9379d26..4bd9f9379d26
mode 000000,100644..100644
--- a/contrib/libcbor/examples/crash_course.c
+++ b/contrib/libcbor/examples/crash_course.c
diff --cc contrib/libcbor/misc/asan_suppressions.osx.supp
index 000000000000,5503d9412a53..5503d9412a53
mode 000000,100644..100644
--- a/contrib/libcbor/misc/asan_suppressions.osx.supp
+++ b/contrib/libcbor/misc/asan_suppressions.osx.supp