From nobody Mon Mar 23 15:42:23 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ffcqh4w3fz6W9BY for ; Mon, 23 Mar 2026 15:42:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ffcqh27YSz4Df9 for ; Mon, 23 Mar 2026 15:42:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774280544; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZC/B1GQDRJrhGlBxlWf4E20TxbTUi4mhdd+Aa7v0fzc=; b=qvmI70/v0dbGPZx0Dt1tJzj3j0HIytFZUQBl/4Z7gmCO0JzisvwO4mS+xvS4lHy5BktGzC nl4HNvPev08uPfAS4VJbFBZHtv6w5cl8gHVtG50S7ZDSSMO2NuMMFC4k67v0bH3C+k847E 4vAN0xBQMMXem29vGhC0cQ0nAwd+GttdGSer2rrq3Gu23cZddQwMCagV294YQpaRoAvKlw 9SZmdt86Ok5PkKjAs7HRSyPLPGArgiVhS1noyUxI4oXwLufyC38DGZtFwRK5r5Sd3pXxAs +U+WH0AenTAu0dCubOmEiNfeSCe5lmyFDuD8NqKTKp9FJhqMbPhWfVE8rLoKOQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774280544; a=rsa-sha256; cv=none; b=y2sqKzL0o9VlWhtR6cJVBlcYPAVM064cWHX/wZhGAo6fsJwA7SFn4MDABwOTtio6Xkhd6K C9bJFcmj+mKOTROP4xcxgjzabt0SPZ4zNT5QyUTrer2iYyW6kJXtcRskosmQCnVQ9Q7cOr qR1IVNK2cRqmTd2h0bYrB2sKl6sLAOZRTJf/W94nkoM7e3d8tFM/q8y0dk79lb0c0sEx3T SG90qE3FET7W+Xnyk6d01rU+y8cJCzWaukTRdkhbDK8BTdcWFGAbR1mZwneRJ04FN3nSyw AEt2Q6xoPP9pER7rNY6x/Bl4c6UppvbC3HMuWXf4W4hoOOQe6rCtpjZA/R1GYg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774280544; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZC/B1GQDRJrhGlBxlWf4E20TxbTUi4mhdd+Aa7v0fzc=; b=SVY3PPr1ZneDO49NpJCZZW3xHJxHC8Pkp0Og5LBY6dfKmxzXaFdaJdx7eHhog3+SWIn0RG rzrwmWTZnUne4n1/kYU9+dfTjjdA759X20sXzSI1mlHdjeO3yXXDlGxiMo31waJDNQHzlJ cKL9uzIF5LQAgC1gEPGGtwMzmys2T8/tc7K5IGENqCgOJowCbprzqS8bX1qKy3ogFCgI06 ufEULQusz6a4pSWrvS2807vbMSfTwEk1cPEn+N0dd7GvY0PVDr5//G570//zedlDkxQRgA DgbgaezN79oWVTXZkLNcCTAhBV45G7bXtqdhn1H84sCZvi8x9R7D61I6g+cjZA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4ffcqh1jhlztjb for ; Mon, 23 Mar 2026 15:42:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24707 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Mar 2026 15:42:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: b5b9517bfe39 - main - libcbor: Update to 0.13.0 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b5b9517bfe394e55088f5a05882eabae7e9b7b29 Auto-Submitted: auto-generated Date: Mon, 23 Mar 2026 15:42:23 +0000 Message-Id: <69c15f5f.24707.389dfe42@gitrepo.freebsd.org> 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 AuthorDate: 2026-03-23 15:41:51 +0000 Commit: Ed Maste 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: '^' + 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) + +[![CircleCI](https://circleci.com/gh/PJK/libcbor/tree/master.svg?style=svg)](https://circleci.com/gh/PJK/libcbor/tree/master) +[![Documentation Status](https://readthedocs.org/projects/libcbor/badge/?version=latest)](https://readthedocs.org/projects/libcbor/?badge=latest) +[![latest packaged version(s)](https://repology.org/badge/latest-versions/libcbor.svg)](https://repology.org/project/libcbor/versions) +[![codecov](https://codecov.io/gh/PJK/libcbor/branch/master/graph/badge.svg)](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 ! ++ +## 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. . ++ ++## Include git repository using Bazel ++ ++See . ++ ++### Others + +
+ Packaged libcbor is available from 15+ major repositories. Click here for more detail + + [![Packaging status](https://repology.org/badge/vertical-allrepos/libcbor.svg)](https://repology.org/project/libcbor/versions) +
+ +## Usage example + +```c +#include +#include + +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: ++ +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