Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Mar 2026 15:42:23 +0000
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: b5b9517bfe39 - main - libcbor: Update to 0.13.0
Message-ID:  <69c15f5f.24707.389dfe42@gitrepo.freebsd.org>

index | next in thread | raw e-mail

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)
 +
 +[![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 <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>
 +  
 +  [![Packaging status](https://repology.org/badge/vertical-allrepos/libcbor.svg)](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


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69c15f5f.24707.389dfe42>