diff options
Diffstat (limited to 'meta-oe/recipes-devtools')
39 files changed, 836 insertions, 2043 deletions
diff --git a/meta-oe/recipes-devtools/b4/b4_0.14.3.bb b/meta-oe/recipes-devtools/b4/b4_0.15.2.bb index a922f999e2..002f6ccfeb 100644 --- a/meta-oe/recipes-devtools/b4/b4_0.14.3.bb +++ b/meta-oe/recipes-devtools/b4/b4_0.15.2.bb | |||
| @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" | |||
| 5 | 5 | ||
| 6 | inherit pypi python_pep517 python_setuptools_build_meta | 6 | inherit pypi python_pep517 python_setuptools_build_meta |
| 7 | 7 | ||
| 8 | SRC_URI[sha256sum] = "31a4927b8dfbb5c97edfc9569cda3b6737bbfd8430881e8cc48a0b088ced6147" | 8 | SRC_URI[sha256sum] = "b815f2aed2288718cfe2a14c76421a00bc4f0918ea32b45dd1645c999fdda69d" |
| 9 | 9 | ||
| 10 | RDEPENDS:${PN} += " \ | 10 | RDEPENDS:${PN} += " \ |
| 11 | python3-mailbox \ | 11 | python3-mailbox \ |
diff --git a/meta-oe/recipes-devtools/canvenient/canvenient_1.01.bb b/meta-oe/recipes-devtools/canvenient/canvenient_1.01.bb new file mode 100644 index 0000000000..8ae41f0a83 --- /dev/null +++ b/meta-oe/recipes-devtools/canvenient/canvenient_1.01.bb | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | |||
| 2 | SUMMARY = "CANvenient is an abstraction layer for multiple CAN APIs \ | ||
| 3 | on Windows and Linux. \ | ||
| 4 | " | ||
| 5 | DESCRIPTION = "CANvenient is an abstraction layer for multiple CAN APIs on \ | ||
| 6 | Windows and Linux. It provides a unified interface for CAN \ | ||
| 7 | communication, allowing developers to write code that is \ | ||
| 8 | portable across different platforms and CAN hardware. \ | ||
| 9 | " | ||
| 10 | HOMEPAGE = "https://canopenterm.de/canvenient" | ||
| 11 | BUGTRACKER = "https://github.com/CANopenTerm/CANvenient/issues" | ||
| 12 | |||
| 13 | LICENSE = "MIT" | ||
| 14 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bd2edc721b4a0289efe949bdbe7dda79" | ||
| 15 | |||
| 16 | DEPENDS = "libsocketcan" | ||
| 17 | |||
| 18 | SRC_URI = "git://github.com/CANopenTerm/CANvenient.git;protocol=https;branch=main;tag=v${PV}" | ||
| 19 | |||
| 20 | SRCREV = "b8b37e3915caf5bce93f38c2c6cca71356dcfcab" | ||
| 21 | |||
| 22 | inherit cmake ptest | ||
| 23 | |||
| 24 | |||
| 25 | do_install:append() { | ||
| 26 | install -d ${D}${includedir} | ||
| 27 | install -d ${D}${libdir} | ||
| 28 | |||
| 29 | install -m 0644 ${S}/include/CANvenient.h ${D}${includedir}/ | ||
| 30 | install -m 0755 ${B}/libCANvenient.so.1.0.1 ${D}${libdir}/ | ||
| 31 | |||
| 32 | ln -sf libCANvenient.so.1.0.1 ${D}${libdir}/libCANvenient.so.1 | ||
| 33 | ln -sf libCANvenient.so.1.0.1 ${D}${libdir}/libCANvenient.so | ||
| 34 | } | ||
| 35 | |||
| 36 | FILES:${PN} += "${libdir}/libCANvenient.so ${libdir}/libCANvenient.so.*" | ||
| 37 | FILES:${PN}-dev += "${includedir}" | ||
| 38 | |||
| 39 | SOLIBS = ".so" | ||
| 40 | |||
| 41 | RDEPENDS:${PN} = "libsocketcan" | ||
diff --git a/meta-oe/recipes-devtools/ctags/ctags_6.2.20260308.0.bb b/meta-oe/recipes-devtools/ctags/ctags_6.2.20260329.0.bb index 51ad8cff8e..76bb5b77be 100644 --- a/meta-oe/recipes-devtools/ctags/ctags_6.2.20260308.0.bb +++ b/meta-oe/recipes-devtools/ctags/ctags_6.2.20260329.0.bb | |||
| @@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" | |||
| 14 | 14 | ||
| 15 | inherit autotools-brokensep pkgconfig manpages | 15 | inherit autotools-brokensep pkgconfig manpages |
| 16 | 16 | ||
| 17 | SRCREV = "db5c5e00f09e62d27108025de24bcec919eac83b" | 17 | SRCREV = "34659e2cb02e055c74e929c5bad291470a729570" |
| 18 | SRC_URI = "git://github.com/universal-ctags/ctags;branch=master;protocol=https;tag=p${PV}" | 18 | SRC_URI = "git://github.com/universal-ctags/ctags;branch=master;protocol=https;tag=p${PV}" |
| 19 | 19 | ||
| 20 | 20 | ||
diff --git a/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.142.bb b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.143.bb index 1478ebb1e4..531d613cea 100644 --- a/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.142.bb +++ b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.143.bb | |||
| @@ -11,7 +11,7 @@ SRC_URI = "\ | |||
| 11 | file://0003-do-not-hardcode-the-full-path-of-dpkg.patch \ | 11 | file://0003-do-not-hardcode-the-full-path-of-dpkg.patch \ |
| 12 | " | 12 | " |
| 13 | 13 | ||
| 14 | SRC_URI[sha256sum] = "334b188c2bab5c1aa6f858a044274631d342f07f5ddec1bad870d728f02fd652" | 14 | SRC_URI[sha256sum] = "c638730e50d3cd8a46ff4ce8b1f74d579e9c8323974285cf3fd1ac36aa8f2ade" |
| 15 | 15 | ||
| 16 | S = "${UNPACKDIR}/debootstrap" | 16 | S = "${UNPACKDIR}/debootstrap" |
| 17 | 17 | ||
diff --git a/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb index c51a49ba01..289330ee04 100644 --- a/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb +++ b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb | |||
| @@ -25,7 +25,7 @@ inherit cmake python3native | |||
| 25 | rm_flatc_cmaketarget_for_target() { | 25 | rm_flatc_cmaketarget_for_target() { |
| 26 | rm -f "${SYSROOT_DESTDIR}/${libdir}/cmake/flatbuffers/FlatcTargets.cmake" | 26 | rm -f "${SYSROOT_DESTDIR}/${libdir}/cmake/flatbuffers/FlatcTargets.cmake" |
| 27 | } | 27 | } |
| 28 | SYSROOT_PREPROCESS_FUNCS:class-target += "rm_flatc_cmaketarget_for_target" | 28 | SYSROOT_PREPROCESS_FUNCS:append:class-target = " rm_flatc_cmaketarget_for_target" |
| 29 | 29 | ||
| 30 | FILES:${PN}-compiler = "${bindir}" | 30 | FILES:${PN}-compiler = "${bindir}" |
| 31 | 31 | ||
diff --git a/meta-oe/recipes-devtools/giflib/giflib/0001-Makefile-fix-typo-in-soname-argument.patch b/meta-oe/recipes-devtools/giflib/giflib/0001-Makefile-fix-typo-in-soname-argument.patch deleted file mode 100644 index dc87ed60b9..0000000000 --- a/meta-oe/recipes-devtools/giflib/giflib/0001-Makefile-fix-typo-in-soname-argument.patch +++ /dev/null | |||
| @@ -1,34 +0,0 @@ | |||
| 1 | From 7f0cd4b6b56183b0afbefd01425e5ebd2b8733b4 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Martin Jansa <martin.jansa@gmail.com> | ||
| 3 | Date: Mon, 8 Jul 2024 13:18:11 +0200 | ||
| 4 | Subject: [PATCH] Makefile: fix typo in soname argument | ||
| 5 | |||
| 6 | * introduced in: | ||
| 7 | https://sourceforge.net/p/giflib/code/ci/b65c7ac2905c0842e7977a7b51d83af4486ca7b8/ | ||
| 8 | there is no LIBUTILMAJOR variable only LIBUTILSOMAJOR leading to: | ||
| 9 | |||
| 10 | ld: fatal error: -soname: must take a non-empty argument | ||
| 11 | collect2: error: ld returned 1 exit status | ||
| 12 | |||
| 13 | with some linkers like GOLD | ||
| 14 | |||
| 15 | Signed-off-by: Martin Jansa <martin.jansa@gmail.com> | ||
| 16 | --- | ||
| 17 | Upstream-Status: Submitted [https://sourceforge.net/p/giflib/code/merge-requests/17/] | ||
| 18 | |||
| 19 | Makefile | 2 +- | ||
| 20 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 21 | |||
| 22 | diff --git a/Makefile b/Makefile | ||
| 23 | index 87966a9..41b149e 100644 | ||
| 24 | --- a/Makefile | ||
| 25 | +++ b/Makefile | ||
| 26 | @@ -109,7 +109,7 @@ $(LIBUTILSO): $(UOBJECTS) $(UHEADERS) | ||
| 27 | ifeq ($(UNAME), Darwin) | ||
| 28 | $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(OBJECTS) -o $(LIBUTILSO) | ||
| 29 | else | ||
| 30 | - $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBUTILMAJOR) -o $(LIBUTILSO) $(UOBJECTS) | ||
| 31 | + $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBUTILSOMAJOR) -o $(LIBUTILSO) $(UOBJECTS) | ||
| 32 | endif | ||
| 33 | |||
| 34 | libutil.a: $(UOBJECTS) $(UHEADERS) | ||
diff --git a/meta-oe/recipes-devtools/giflib/giflib_5.2.2.bb b/meta-oe/recipes-devtools/giflib/giflib_6.1.2.bb index aa47f93095..9cb2a51879 100644 --- a/meta-oe/recipes-devtools/giflib/giflib_5.2.2.bb +++ b/meta-oe/recipes-devtools/giflib/giflib_6.1.2.bb | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | SUMMARY = "shared library for GIF images" | 1 | SUMMARY = "shared library for GIF images" |
| 2 | SECTION = "libs" | 2 | SECTION = "libs" |
| 3 | LICENSE = "MIT" | 3 | LICENSE = "MIT" |
| 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=ae11c61b04b2917be39b11f78d71519a" | 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=b427970b2f3a9142a4e432c78c4680f4" |
| 5 | 5 | ||
| 6 | CVE_PRODUCT = "giflib_project:giflib" | 6 | CVE_PRODUCT = "giflib_project:giflib" |
| 7 | 7 | ||
| @@ -9,11 +9,10 @@ DEPENDS = "xmlto-native" | |||
| 9 | 9 | ||
| 10 | SRC_URI = "${SOURCEFORGE_MIRROR}/giflib/${BP}.tar.gz \ | 10 | SRC_URI = "${SOURCEFORGE_MIRROR}/giflib/${BP}.tar.gz \ |
| 11 | https://sourceforge.net/p/giflib/code/ci/d54b45b0240d455bbaedee4be5203d2703e59967/tree/doc/giflib-logo.gif?format=raw;subdir=${BP}/doc;name=logo;downloadfilename=giflib-logo.gif \ | 11 | https://sourceforge.net/p/giflib/code/ci/d54b45b0240d455bbaedee4be5203d2703e59967/tree/doc/giflib-logo.gif?format=raw;subdir=${BP}/doc;name=logo;downloadfilename=giflib-logo.gif \ |
| 12 | file://0001-Makefile-fix-typo-in-soname-argument.patch \ | ||
| 13 | " | 12 | " |
| 14 | 13 | ||
| 15 | SRC_URI[logo.sha256sum] = "1a54383986adad1521d00e003b4c482c27e8bc60690be944a1f3319c75abc2c9" | 14 | SRC_URI[logo.sha256sum] = "1a54383986adad1521d00e003b4c482c27e8bc60690be944a1f3319c75abc2c9" |
| 16 | SRC_URI[sha256sum] = "be7ffbd057cadebe2aa144542fd90c6838c6a083b5e8a9048b8ee3b66b29d5fb" | 15 | SRC_URI[sha256sum] = "2421abb54f5906b14965d28a278fb49e1ec9fe5ebbc56244dd012383a973d5c0" |
| 17 | 16 | ||
| 18 | do_install() { | 17 | do_install() { |
| 19 | # using autotools's default will end up in /usr/local | 18 | # using autotools's default will end up in /usr/local |
| @@ -27,3 +26,5 @@ FILES:${PN}-utils = "${bindir}" | |||
| 27 | BBCLASSEXTEND = "native" | 26 | BBCLASSEXTEND = "native" |
| 28 | 27 | ||
| 29 | RDEPENDS:${PN}-utils = "perl" | 28 | RDEPENDS:${PN}-utils = "perl" |
| 29 | |||
| 30 | CVE_STATUS[CVE-2026-23868] = "fixed-version: fixed since v6.1.2" | ||
diff --git a/meta-oe/recipes-devtools/grpc/grpc_1.78.1.bb b/meta-oe/recipes-devtools/grpc/grpc_1.80.0.bb index 6739c659d3..14ead4ccf9 100644 --- a/meta-oe/recipes-devtools/grpc/grpc_1.78.1.bb +++ b/meta-oe/recipes-devtools/grpc/grpc_1.80.0.bb | |||
| @@ -5,7 +5,7 @@ HOMEPAGE = "https://github.com/grpc/grpc" | |||
| 5 | SECTION = "libs" | 5 | SECTION = "libs" |
| 6 | LICENSE = "Apache-2.0 & BSD-3-Clause & MPL-2.0 & MIT & BSD-2-Clause" | 6 | LICENSE = "Apache-2.0 & BSD-3-Clause & MPL-2.0 & MIT & BSD-2-Clause" |
| 7 | LIC_FILES_CHKSUM = " \ | 7 | LIC_FILES_CHKSUM = " \ |
| 8 | file://LICENSE;md5=731e401b36f8077ae0c134b59be5c906 \ | 8 | file://LICENSE;md5=fe8c552b7748e45c00ac55ac0257f6c9 \ |
| 9 | file://third_party/utf8_range/LICENSE;md5=d4974d297231477b2ff507c35d61c13c \ | 9 | file://third_party/utf8_range/LICENSE;md5=d4974d297231477b2ff507c35d61c13c \ |
| 10 | file://third_party/xxhash/LICENSE;md5=cdfe7764d5685d8e08b3df302885d7f3 \ | 10 | file://third_party/xxhash/LICENSE;md5=cdfe7764d5685d8e08b3df302885d7f3 \ |
| 11 | " | 11 | " |
| @@ -23,8 +23,8 @@ RDEPENDS:${PN}-dev:append:class-native = " ${PN}-compiler" | |||
| 23 | # Both dependencies are mutually exclusive | 23 | # Both dependencies are mutually exclusive |
| 24 | # RDEPENDS:${PN}-dev += "${PN}-compiler" | 24 | # RDEPENDS:${PN}-dev += "${PN}-compiler" |
| 25 | 25 | ||
| 26 | SRCREV = "5b6492ea90b2b867a6adad1b10a6edda28e860d1" | 26 | SRCREV = "f5e2d6e856176c2f6b7691032adfefe21e5f64c1" |
| 27 | BRANCH = "v1.78.x" | 27 | BRANCH = "v1.80.x" |
| 28 | SRC_URI = "gitsm://github.com/grpc/grpc.git;protocol=https;branch=${BRANCH};tag=v${PV} \ | 28 | SRC_URI = "gitsm://github.com/grpc/grpc.git;protocol=https;branch=${BRANCH};tag=v${PV} \ |
| 29 | file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \ | 29 | file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \ |
| 30 | " | 30 | " |
diff --git a/meta-oe/recipes-devtools/include-what-you-use/include-what-you-use_0.25.bb b/meta-oe/recipes-devtools/include-what-you-use/include-what-you-use_0.26.bb index 138f7fc2bc..57ade99a1d 100644 --- a/meta-oe/recipes-devtools/include-what-you-use/include-what-you-use_0.25.bb +++ b/meta-oe/recipes-devtools/include-what-you-use/include-what-you-use_0.26.bb | |||
| @@ -10,9 +10,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=3bb66a14534286912cd6f26649b5c60a \ | |||
| 10 | 10 | ||
| 11 | DEPENDS = "clang" | 11 | DEPENDS = "clang" |
| 12 | 12 | ||
| 13 | PV .= "+git" | 13 | SRCREV = "01a091d16b3dedb808db21f32ed3e761737a3691" |
| 14 | SRCREV = "791e69ea4662cb3e74e8128fd5fd69bd7f4ea6b3" | 14 | SRC_URI = "git://github.com/include-what-you-use/include-what-you-use.git;protocol=https;branch=clang_22;tag=${PV}" |
| 15 | SRC_URI = "git://github.com/include-what-you-use/include-what-you-use.git;protocol=https;branch=clang_21" | ||
| 16 | 15 | ||
| 17 | inherit cmake python3native | 16 | inherit cmake python3native |
| 18 | 17 | ||
diff --git a/meta-oe/recipes-devtools/isocline/isocline_1.0.9.bb b/meta-oe/recipes-devtools/isocline/isocline_1.0.9.bb new file mode 100644 index 0000000000..2afc4500df --- /dev/null +++ b/meta-oe/recipes-devtools/isocline/isocline_1.0.9.bb | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | SUMMARY = "Isocline is a portable GNU readline alternative." | ||
| 2 | DESCRIPTION = "Isocline is a pure C library that can be used \ | ||
| 3 | as an alternative to the GNU readline library. \ | ||
| 4 | " | ||
| 5 | HOMEPAGE = "https://github.com/daanx/isocline" | ||
| 6 | BUGTRACKER = "https://github.com/daanx/isocline/issues" | ||
| 7 | |||
| 8 | LICENSE = "MIT" | ||
| 9 | LIC_FILES_CHKSUM = "file://LICENSE;md5=8d05469c537534c7405c82c81a526bcd" | ||
| 10 | |||
| 11 | SRC_URI = "git://github.com/daanx/isocline.git;protocol=https;branch=main;tag=v${PV}" | ||
| 12 | SRCREV = "74d34bc453f5b91f1f8d8ded2840e1553623d135" | ||
| 13 | |||
| 14 | |||
| 15 | inherit cmake | ||
| 16 | |||
| 17 | CFLAGS += "-fPIC" | ||
| 18 | |||
| 19 | do_install() { | ||
| 20 | install -d ${D}${libdir} | ||
| 21 | install -m 0644 ${B}/libisocline.a ${D}${libdir}/ | ||
| 22 | install -d ${D}${includedir} | ||
| 23 | cp ${S}/include/isocline.h ${D}${includedir}/ | ||
| 24 | } | ||
| 25 | |||
| 26 | FILES:${PN}-dev = "${libdir}/libisocline.a" | ||
| 27 | FILES:${PN}-dev = "${includedir}/isocline.h" | ||
| 28 | FILES:${PN}-dbg += "${libdir}/.debug/libisocline.a" | ||
diff --git a/meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch b/meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch new file mode 100644 index 0000000000..12a64a75ed --- /dev/null +++ b/meta-oe/recipes-devtools/jq/jq/0001-Support-building-with-disable-maintainer-mode-and-so.patch | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | From 27f417f4812e688a59fc5186b7768cec004cd6e5 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Peter Kjellerstedt <peter.kjellerstedt@gmail.com> | ||
| 3 | Date: Wed, 8 Apr 2026 05:58:49 +0200 | ||
| 4 | Subject: [PATCH] Support building with --disable-maintainer-mode and source != | ||
| 5 | build dir (#3518) | ||
| 6 | |||
| 7 | If --disable-maintainer-mode is enabled, then the rules for generating | ||
| 8 | parser.[ch] and lexer.[ch] did nothing. This worked fine if the source | ||
| 9 | and build directories are the same as the pre-generated parser.c and | ||
| 10 | lexer.c files would suffice. However, if the build directory is not the | ||
| 11 | same as the source directory, then the rest of the Make rules expect | ||
| 12 | parser.[ch] and lexer.[ch] to have been created in the build directory | ||
| 13 | if their source files (parser.y and lexer.l) are newer than the target | ||
| 14 | files, which can happen in case the source is fetched using Git. | ||
| 15 | |||
| 16 | Avoid the problem by copying the files to the build directory if needed. | ||
| 17 | |||
| 18 | Co-authored-by: Peter Kjellerstedt <pkj@axis.com> | ||
| 19 | Upstream-Status: Backport [https://github.com/jqlang/jq/commit/27f417f4812e688a59fc5186b7768cec004cd6e5] | ||
| 20 | --- | ||
| 21 | Makefile.am | 9 +++++++-- | ||
| 22 | 1 file changed, 7 insertions(+), 2 deletions(-) | ||
| 23 | |||
| 24 | diff --git a/Makefile.am b/Makefile.am | ||
| 25 | index 96d6038..acb9443 100644 | ||
| 26 | --- a/Makefile.am | ||
| 27 | +++ b/Makefile.am | ||
| 28 | @@ -41,9 +41,14 @@ src/lexer.h: src/lexer.c | ||
| 29 | else | ||
| 30 | BUILT_SOURCES = src/builtin.inc src/config_opts.inc src/version.h | ||
| 31 | .y.c: | ||
| 32 | - $(AM_V_YACC) echo "NOT building parser.c!" | ||
| 33 | + $(AM_V_YACC) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(@F) $@ | ||
| 34 | + $(AM_V_YACC) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(*F).h $*.h | ||
| 35 | + $(AM_V_YACC) touch $@ $*.h | ||
| 36 | + | ||
| 37 | .l.c: | ||
| 38 | - $(AM_V_LEX) echo "NOT building lexer.c!" | ||
| 39 | + $(AM_V_LEX) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(@F) $@ | ||
| 40 | + $(AM_V_LEX) [ "$(<D)" = "$(@D)" ] || cp $(<D)/$(*F).h $*.h | ||
| 41 | + $(AM_V_LEX) touch $@ $*.h | ||
| 42 | endif | ||
| 43 | |||
| 44 | # Tell YACC (Bison) autoconf macros that you want a header file created. | ||
diff --git a/meta-oe/recipes-devtools/jq/jq/CVE-2026-32316.patch b/meta-oe/recipes-devtools/jq/jq/CVE-2026-32316.patch new file mode 100644 index 0000000000..1277b356d8 --- /dev/null +++ b/meta-oe/recipes-devtools/jq/jq/CVE-2026-32316.patch | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | From 321e62b356df2d4ed47aba4f3818e447ec4d77fc Mon Sep 17 00:00:00 2001 | ||
| 2 | From: itchyny <itchyny@cybozu.co.jp> | ||
| 3 | Date: Thu, 12 Mar 2026 20:28:43 +0900 | ||
| 4 | Subject: [PATCH] Fix heap buffer overflow in `jvp_string_append` and | ||
| 5 | `jvp_string_copy_replace_bad` | ||
| 6 | |||
| 7 | In `jvp_string_append`, the allocation size `(currlen + len) * 2` could | ||
| 8 | overflow `uint32_t` when `currlen + len` exceeds `INT_MAX`, causing a small | ||
| 9 | allocation followed by a large `memcpy`. | ||
| 10 | |||
| 11 | In `jvp_string_copy_replace_bad`, the output buffer size calculation | ||
| 12 | `length * 3 + 1` could overflow `uint32_t`, again resulting in a small | ||
| 13 | allocation followed by a large write. | ||
| 14 | |||
| 15 | Add overflow checks to both functions to return an error for strings | ||
| 16 | that would exceed `INT_MAX` in length. Fixes CVE-2026-32316. | ||
| 17 | |||
| 18 | CVE: CVE-2026-32316 | ||
| 19 | Upstream-Status: Backport [https://github.com/jqlang/jq/commit/e47e56d226519635768e6aab2f38f0ab037c09e5] | ||
| 20 | Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> | ||
| 21 | --- | ||
| 22 | src/jv.c | 11 ++++++++++- | ||
| 23 | 1 file changed, 10 insertions(+), 1 deletion(-) | ||
| 24 | |||
| 25 | diff --git a/src/jv.c b/src/jv.c | ||
| 26 | index e4529a4..74be05a 100644 | ||
| 27 | --- a/src/jv.c | ||
| 28 | +++ b/src/jv.c | ||
| 29 | @@ -1114,7 +1114,12 @@ static jv jvp_string_copy_replace_bad(const char* data, uint32_t length) { | ||
| 30 | const char* end = data + length; | ||
| 31 | const char* i = data; | ||
| 32 | |||
| 33 | - uint32_t maxlength = length * 3 + 1; // worst case: all bad bytes, each becomes a 3-byte U+FFFD | ||
| 34 | + // worst case: all bad bytes, each becomes a 3-byte U+FFFD | ||
| 35 | + uint64_t maxlength = (uint64_t)length * 3 + 1; | ||
| 36 | + if (maxlength >= INT_MAX) { | ||
| 37 | + return jv_invalid_with_msg(jv_string("String too long")); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | jvp_string* s = jvp_string_alloc(maxlength); | ||
| 41 | char* out = s->data; | ||
| 42 | int c = 0; | ||
| 43 | @@ -1174,6 +1179,10 @@ static uint32_t jvp_string_remaining_space(jvp_string* s) { | ||
| 44 | static jv jvp_string_append(jv string, const char* data, uint32_t len) { | ||
| 45 | jvp_string* s = jvp_string_ptr(string); | ||
| 46 | uint32_t currlen = jvp_string_length(s); | ||
| 47 | + if ((uint64_t)currlen + len >= INT_MAX) { | ||
| 48 | + jv_free(string); | ||
| 49 | + return jv_invalid_with_msg(jv_string("String too long")); | ||
| 50 | + } | ||
| 51 | |||
| 52 | if (jvp_refcnt_unshared(string.u.ptr) && | ||
| 53 | jvp_string_remaining_space(s) >= len) { | ||
diff --git a/meta-oe/recipes-devtools/jq/jq/CVE-2026-33947.patch b/meta-oe/recipes-devtools/jq/jq/CVE-2026-33947.patch new file mode 100644 index 0000000000..69a8381f06 --- /dev/null +++ b/meta-oe/recipes-devtools/jq/jq/CVE-2026-33947.patch | |||
| @@ -0,0 +1,104 @@ | |||
| 1 | From 5fd935884a6f5b3d8ecdcacfc5d3982140f3a478 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: itchyny <itchyny@cybozu.co.jp> | ||
| 3 | Date: Mon, 13 Apr 2026 11:23:40 +0900 | ||
| 4 | Subject: [PATCH] Limit path depth to prevent stack overflow | ||
| 5 | |||
| 6 | Deeply nested path arrays can cause unbounded recursion in | ||
| 7 | `jv_setpath`, `jv_getpath`, and `jv_delpaths`, leading to | ||
| 8 | stack overflow. Add a depth limit of 10000 to match the | ||
| 9 | existing `tojson` depth limit. This fixes CVE-2026-33947. | ||
| 10 | |||
| 11 | CVE: CVE-2026-33947 | ||
| 12 | Upstream-Status: Backport [https://github.com/jqlang/jq/commit/fb59f1491058d58bdc3e8dd28f1773d1ac690a1f] | ||
| 13 | Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> | ||
| 14 | --- | ||
| 15 | src/jv_aux.c | 21 +++++++++++++++++++++ | ||
| 16 | tests/jq.test | 25 +++++++++++++++++++++++++ | ||
| 17 | 2 files changed, 46 insertions(+) | ||
| 18 | |||
| 19 | diff --git a/src/jv_aux.c b/src/jv_aux.c | ||
| 20 | index bc1405f..594a21f 100644 | ||
| 21 | --- a/src/jv_aux.c | ||
| 22 | +++ b/src/jv_aux.c | ||
| 23 | @@ -375,6 +375,10 @@ static jv jv_dels(jv t, jv keys) { | ||
| 24 | return t; | ||
| 25 | } | ||
| 26 | |||
| 27 | +#ifndef MAX_PATH_DEPTH | ||
| 28 | +#define MAX_PATH_DEPTH (10000) | ||
| 29 | +#endif | ||
| 30 | + | ||
| 31 | jv jv_setpath(jv root, jv path, jv value) { | ||
| 32 | if (jv_get_kind(path) != JV_KIND_ARRAY) { | ||
| 33 | jv_free(value); | ||
| 34 | @@ -382,6 +386,12 @@ jv jv_setpath(jv root, jv path, jv value) { | ||
| 35 | jv_free(path); | ||
| 36 | return jv_invalid_with_msg(jv_string("Path must be specified as an array")); | ||
| 37 | } | ||
| 38 | + if (jv_array_length(jv_copy(path)) > MAX_PATH_DEPTH) { | ||
| 39 | + jv_free(value); | ||
| 40 | + jv_free(root); | ||
| 41 | + jv_free(path); | ||
| 42 | + return jv_invalid_with_msg(jv_string("Path too deep")); | ||
| 43 | + } | ||
| 44 | if (!jv_is_valid(root)){ | ||
| 45 | jv_free(value); | ||
| 46 | jv_free(path); | ||
| 47 | @@ -434,6 +444,11 @@ jv jv_getpath(jv root, jv path) { | ||
| 48 | jv_free(path); | ||
| 49 | return jv_invalid_with_msg(jv_string("Path must be specified as an array")); | ||
| 50 | } | ||
| 51 | + if (jv_array_length(jv_copy(path)) > MAX_PATH_DEPTH) { | ||
| 52 | + jv_free(root); | ||
| 53 | + jv_free(path); | ||
| 54 | + return jv_invalid_with_msg(jv_string("Path too deep")); | ||
| 55 | + } | ||
| 56 | if (!jv_is_valid(root)) { | ||
| 57 | jv_free(path); | ||
| 58 | return root; | ||
| 59 | @@ -511,6 +526,12 @@ jv jv_delpaths(jv object, jv paths) { | ||
| 60 | jv_free(elem); | ||
| 61 | return err; | ||
| 62 | } | ||
| 63 | + if (jv_array_length(jv_copy(elem)) > MAX_PATH_DEPTH) { | ||
| 64 | + jv_free(object); | ||
| 65 | + jv_free(paths); | ||
| 66 | + jv_free(elem); | ||
| 67 | + return jv_invalid_with_msg(jv_string("Path too deep")); | ||
| 68 | + } | ||
| 69 | jv_free(elem); | ||
| 70 | } | ||
| 71 | if (jv_array_length(jv_copy(paths)) == 0) { | ||
| 72 | diff --git a/tests/jq.test b/tests/jq.test | ||
| 73 | index 4ecf72f..6186d8b 100644 | ||
| 74 | --- a/tests/jq.test | ||
| 75 | +++ b/tests/jq.test | ||
| 76 | @@ -2507,3 +2507,28 @@ strflocaltime("" | ., @uri) | ||
| 77 | 0 | ||
| 78 | "" | ||
| 79 | "" | ||
| 80 | + | ||
| 81 | +# regression test for CVE-2026-33947 | ||
| 82 | +setpath([range(10000) | 0]; 0) | flatten | ||
| 83 | +null | ||
| 84 | +[0] | ||
| 85 | + | ||
| 86 | +try setpath([range(10001) | 0]; 0) catch . | ||
| 87 | +null | ||
| 88 | +"Path too deep" | ||
| 89 | + | ||
| 90 | +getpath([range(10000) | 0]) | ||
| 91 | +null | ||
| 92 | +null | ||
| 93 | + | ||
| 94 | +try getpath([range(10001) | 0]) catch . | ||
| 95 | +null | ||
| 96 | +"Path too deep" | ||
| 97 | + | ||
| 98 | +delpaths([[range(10000) | 0]]) | ||
| 99 | +null | ||
| 100 | +null | ||
| 101 | + | ||
| 102 | +try delpaths([[range(10001) | 0]]) catch . | ||
| 103 | +null | ||
| 104 | +"Path too deep" | ||
diff --git a/meta-oe/recipes-devtools/jq/jq/CVE-2026-33948.patch b/meta-oe/recipes-devtools/jq/jq/CVE-2026-33948.patch new file mode 100644 index 0000000000..8625429c74 --- /dev/null +++ b/meta-oe/recipes-devtools/jq/jq/CVE-2026-33948.patch | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | From 19a792c4cdb6b91c056eac033ac3367af6e67755 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: itchyny <itchyny@cybozu.co.jp> | ||
| 3 | Date: Mon, 13 Apr 2026 08:46:11 +0900 | ||
| 4 | Subject: [PATCH] Fix NUL truncation in the JSON parser | ||
| 5 | |||
| 6 | This fixes CVE-2026-33948. | ||
| 7 | |||
| 8 | CVE: CVE-2026-33948 | ||
| 9 | Upstream-Status: Backport [https://github.com/jqlang/jq/commit/6374ae0bcdfe33a18eb0ae6db28493b1f34a0a5b] | ||
| 10 | Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> | ||
| 11 | --- | ||
| 12 | src/util.c | 8 +------- | ||
| 13 | tests/shtest | 6 ++++++ | ||
| 14 | 2 files changed, 7 insertions(+), 7 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/src/util.c b/src/util.c | ||
| 17 | index bcb86da..60ec4d5 100644 | ||
| 18 | --- a/src/util.c | ||
| 19 | +++ b/src/util.c | ||
| 20 | @@ -309,13 +309,7 @@ static int jq_util_input_read_more(jq_util_input_state *state) { | ||
| 21 | if (p != NULL) | ||
| 22 | state->current_line++; | ||
| 23 | |||
| 24 | - if (p == NULL && state->parser != NULL) { | ||
| 25 | - /* | ||
| 26 | - * There should be no NULs in JSON texts (but JSON text | ||
| 27 | - * sequences are another story). | ||
| 28 | - */ | ||
| 29 | - state->buf_valid_len = strlen(state->buf); | ||
| 30 | - } else if (p == NULL && feof(state->current_input)) { | ||
| 31 | + if (p == NULL && feof(state->current_input)) { | ||
| 32 | size_t i; | ||
| 33 | |||
| 34 | /* | ||
| 35 | diff --git a/tests/shtest b/tests/shtest | ||
| 36 | index 887a6bb..a046afe 100755 | ||
| 37 | --- a/tests/shtest | ||
| 38 | +++ b/tests/shtest | ||
| 39 | @@ -842,4 +842,10 @@ if ! $msys && ! $mingw; then | ||
| 40 | fi | ||
| 41 | fi | ||
| 42 | |||
| 43 | +# CVE-2026-33948: No NUL truncation in the JSON parser | ||
| 44 | +if printf '{}\x00{}' | $JQ >/dev/null 2> /dev/null; then | ||
| 45 | + printf 'Error expected but jq exited successfully\n' 1>&2 | ||
| 46 | + exit 1 | ||
| 47 | +fi | ||
| 48 | + | ||
| 49 | exit 0 | ||
diff --git a/meta-oe/recipes-devtools/jq/jq/CVE-2026-39979.patch b/meta-oe/recipes-devtools/jq/jq/CVE-2026-39979.patch new file mode 100644 index 0000000000..40c57a46a0 --- /dev/null +++ b/meta-oe/recipes-devtools/jq/jq/CVE-2026-39979.patch | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | From ac09f274b6c029a23e3dffc38afac819b5daacc4 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: itchyny <itchyny@cybozu.co.jp> | ||
| 3 | Date: Mon, 13 Apr 2026 11:04:52 +0900 | ||
| 4 | Subject: [PATCH] Fix out-of-bounds read in jv_parse_sized() | ||
| 5 | |||
| 6 | This fixes CVE-2026-39979. | ||
| 7 | |||
| 8 | Co-authored-by: Mattias Wadman <mattias.wadman@gmail.com> | ||
| 9 | |||
| 10 | CVE: CVE-2026-39979 | ||
| 11 | Upstream-Status: Backport [https://github.com/jqlang/jq/commit/2f09060afab23fe9390cce7cb860b10416e1bf5f] | ||
| 12 | Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> | ||
| 13 | --- | ||
| 14 | src/jv_parse.c | 3 ++- | ||
| 15 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
| 16 | |||
| 17 | diff --git a/src/jv_parse.c b/src/jv_parse.c | ||
| 18 | index ffcf51f..e6b8aa9 100644 | ||
| 19 | --- a/src/jv_parse.c | ||
| 20 | +++ b/src/jv_parse.c | ||
| 21 | @@ -892,8 +892,9 @@ jv jv_parse_sized_custom_flags(const char* string, int length, int flags) { | ||
| 22 | |||
| 23 | if (!jv_is_valid(value) && jv_invalid_has_msg(jv_copy(value))) { | ||
| 24 | jv msg = jv_invalid_get_msg(value); | ||
| 25 | - value = jv_invalid_with_msg(jv_string_fmt("%s (while parsing '%s')", | ||
| 26 | + value = jv_invalid_with_msg(jv_string_fmt("%s (while parsing '%.*s')", | ||
| 27 | jv_string_value(msg), | ||
| 28 | + length, | ||
| 29 | string)); | ||
| 30 | jv_free(msg); | ||
| 31 | } | ||
diff --git a/meta-oe/recipes-devtools/jq/jq_1.8.1.bb b/meta-oe/recipes-devtools/jq/jq_1.8.1.bb index b9383c76f7..026f6bfa71 100644 --- a/meta-oe/recipes-devtools/jq/jq_1.8.1.bb +++ b/meta-oe/recipes-devtools/jq/jq_1.8.1.bb | |||
| @@ -8,15 +8,20 @@ SECTION = "utils" | |||
| 8 | LICENSE = "MIT & BSD-2-Clause" | 8 | LICENSE = "MIT & BSD-2-Clause" |
| 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=cf7fcb0a1def4a7ad62c028f7d0dca47" | 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=cf7fcb0a1def4a7ad62c028f7d0dca47" |
| 10 | 10 | ||
| 11 | GITHUB_BASE_URI = "https://github.com/jqlang/${BPN}/releases/" | 11 | SRCREV = "4467af7068b1bcd7f882defff6e7ea674c5357f4" |
| 12 | SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \ | ||
| 13 | file://run-ptest \ | ||
| 14 | " | ||
| 15 | SRC_URI[sha256sum] = "2be64e7129cecb11d5906290eba10af694fb9e3e7f9fc208a311dc33ca837eb0" | ||
| 16 | 12 | ||
| 17 | inherit autotools github-releases ptest | 13 | SRC_URI = "git://github.com/jqlang/jq.git;protocol=https;branch=master;tag=jq-${PV} \ |
| 14 | file://run-ptest \ | ||
| 15 | file://0001-Support-building-with-disable-maintainer-mode-and-so.patch \ | ||
| 16 | file://CVE-2026-32316.patch \ | ||
| 17 | file://CVE-2026-33947.patch \ | ||
| 18 | file://CVE-2026-33948.patch \ | ||
| 19 | file://CVE-2026-39979.patch \ | ||
| 20 | " | ||
| 18 | 21 | ||
| 19 | UPSTREAM_CHECK_REGEX = "releases/tag/${BPN}-(?P<pver>\d+(\.\d+)+)" | 22 | inherit autotools ptest |
| 23 | |||
| 24 | UPSTREAM_CHECK_GITTAGREGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)" | ||
| 20 | 25 | ||
| 21 | PACKAGECONFIG ?= "oniguruma" | 26 | PACKAGECONFIG ?= "oniguruma" |
| 22 | 27 | ||
diff --git a/meta-oe/recipes-devtools/jsoncpp/files/run-ptest b/meta-oe/recipes-devtools/jsoncpp/files/run-ptest new file mode 100644 index 0000000000..2cb892b187 --- /dev/null +++ b/meta-oe/recipes-devtools/jsoncpp/files/run-ptest | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | cd src | ||
| 4 | ctest --force-new-ctest-process | sed -u 's/\*\*\*/ /g' | awk '/Test +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL"); gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}' | ||
diff --git a/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.6.bb b/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.6.bb deleted file mode 100644 index f68ffd2c0f..0000000000 --- a/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.6.bb +++ /dev/null | |||
| @@ -1,24 +0,0 @@ | |||
| 1 | SUMMARY = "JSON C++ lib used to read and write json file." | ||
| 2 | DESCRIPTION = "Jsoncpp is an implementation of a JSON (http://json.org) reader \ | ||
| 3 | and writer in C++. JSON (JavaScript Object Notation) is a \ | ||
| 4 | lightweight data-interchange format. It is easy for humans to \ | ||
| 5 | read and write. It is easy for machines to parse and generate." | ||
| 6 | |||
| 7 | HOMEPAGE = "https://github.com/open-source-parsers/jsoncpp" | ||
| 8 | |||
| 9 | SECTION = "libs" | ||
| 10 | |||
| 11 | LICENSE = "MIT" | ||
| 12 | LIC_FILES_CHKSUM = "file://LICENSE;md5=5d73c165a0f9e86a1342f32d19ec5926" | ||
| 13 | |||
| 14 | PE = "1" | ||
| 15 | |||
| 16 | SRCREV = "89e2973c754a9c02a49974d839779b151e95afd6" | ||
| 17 | SRC_URI = "git://github.com/open-source-parsers/jsoncpp;branch=master;protocol=https" | ||
| 18 | |||
| 19 | |||
| 20 | inherit cmake | ||
| 21 | |||
| 22 | EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DBUILD_OBJECT_LIBS=OFF -DJSONCPP_WITH_TESTS=OFF" | ||
| 23 | |||
| 24 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.7.bb b/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.7.bb new file mode 100644 index 0000000000..797f093f33 --- /dev/null +++ b/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.7.bb | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | SUMMARY = "JSON C++ lib used to read and write json file." | ||
| 2 | DESCRIPTION = "Jsoncpp is an implementation of a JSON (http://json.org) reader \ | ||
| 3 | and writer in C++. JSON (JavaScript Object Notation) is a \ | ||
| 4 | lightweight data-interchange format. It is easy for humans to \ | ||
| 5 | read and write. It is easy for machines to parse and generate." | ||
| 6 | |||
| 7 | HOMEPAGE = "https://github.com/open-source-parsers/jsoncpp" | ||
| 8 | |||
| 9 | SECTION = "libs" | ||
| 10 | |||
| 11 | LICENSE = "MIT" | ||
| 12 | LIC_FILES_CHKSUM = "file://LICENSE;md5=5d73c165a0f9e86a1342f32d19ec5926" | ||
| 13 | |||
| 14 | PE = "1" | ||
| 15 | |||
| 16 | SRCREV = "3455302847cf1e4671f1d8f5fa953fd46a7b1404" | ||
| 17 | SRC_URI = "git://github.com/open-source-parsers/jsoncpp;branch=master;protocol=https;tag=${PV} \ | ||
| 18 | file://run-ptest \ | ||
| 19 | " | ||
| 20 | |||
| 21 | inherit cmake ptest | ||
| 22 | |||
| 23 | EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DBUILD_OBJECT_LIBS=OFF \ | ||
| 24 | ${@bb.utils.contains('PTEST_ENABLED', '1', '-DJSONCPP_WITH_TESTS=ON -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF', '-DJSONCPP_WITH_TESTS=OFF', d)} \ | ||
| 25 | " | ||
| 26 | |||
| 27 | DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'rsync-native', '', d)}" | ||
| 28 | RDEPENDS:${PN}-ptest += "cmake python3-core" | ||
| 29 | |||
| 30 | do_install_ptest () { | ||
| 31 | cp -r ${B}/bin ${D}${PTEST_PATH} | ||
| 32 | cp -r ${S}/test ${D}${PTEST_PATH} | ||
| 33 | |||
| 34 | rsync -a ${B}/src ${D}${PTEST_PATH} \ | ||
| 35 | --exclude CMakeFiles \ | ||
| 36 | --exclude cmake_install.cmake \ | ||
| 37 | --exclude Makefile \ | ||
| 38 | --exclude generated | ||
| 39 | sed -i -e 's#${B}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake` | ||
| 40 | sed -i -e 's#${S}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake` | ||
| 41 | sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake` | ||
| 42 | sed -i -e 's#${PYTHON}#/usr/bin/python3#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake` | ||
| 43 | sed -i -e 's#${WORKDIR}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake` | ||
| 44 | } | ||
| 45 | |||
| 46 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta-oe/recipes-devtools/librust-cxx/librust-cxx-crates.inc b/meta-oe/recipes-devtools/librust-cxx/librust-cxx-crates.inc index c313d24e5c..ea21ea5924 100644 --- a/meta-oe/recipes-devtools/librust-cxx/librust-cxx-crates.inc +++ b/meta-oe/recipes-devtools/librust-cxx/librust-cxx-crates.inc | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | # Autogenerated with 'bitbake -c update_crates cxx' | 1 | # Autogenerated with 'bitbake -c update_crates librust-cxx' |
| 2 | 2 | ||
| 3 | # from Cargo.lock | 3 | # from Cargo.lock |
| 4 | SRC_URI += " \ | 4 | SRC_URI += " \ |
diff --git a/meta-oe/recipes-devtools/libtoml11/files/0001-Remove-more-whitespaces-after-operator.patch b/meta-oe/recipes-devtools/libtoml11/files/0001-Remove-more-whitespaces-after-operator.patch new file mode 100644 index 0000000000..5bff81eaf6 --- /dev/null +++ b/meta-oe/recipes-devtools/libtoml11/files/0001-Remove-more-whitespaces-after-operator.patch | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | From 6af7de3d5eaae59c53c42aab8eca1e1e9a365da5 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Steffen Winter <steffen.winter@proton.me> | ||
| 3 | Date: Thu, 25 Dec 2025 20:48:02 +0100 | ||
| 4 | Subject: [PATCH] Remove more whitespaces after operator"" | ||
| 5 | |||
| 6 | Upstream-Status: Submitted [https://github.com/ToruNiina/toml11/pull/306] | ||
| 7 | Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com> | ||
| 8 | --- | ||
| 9 | include/toml11/fwd/literal_fwd.hpp | 4 ++-- | ||
| 10 | include/toml11/impl/literal_impl.hpp | 4 ++-- | ||
| 11 | 2 files changed, 4 insertions(+), 4 deletions(-) | ||
| 12 | |||
| 13 | --- a/include/toml11/fwd/literal_fwd.hpp | ||
| 14 | +++ b/include/toml11/fwd/literal_fwd.hpp | ||
| 15 | @@ -24,7 +24,7 @@ inline namespace toml_literals | ||
| 16 | #if defined(TOML11_HAS_CHAR8_T) | ||
| 17 | // value of u8"" literal has been changed from char to char8_t and char8_t is | ||
| 18 | // NOT compatible to char | ||
| 19 | -::toml::value operator"" _toml(const char8_t* str, std::size_t len); | ||
| 20 | +::toml::value operator""_toml(const char8_t* str, std::size_t len); | ||
| 21 | #endif | ||
| 22 | |||
| 23 | } // toml_literals | ||
| 24 | --- a/include/toml11/impl/literal_impl.hpp | ||
| 25 | +++ b/include/toml11/impl/literal_impl.hpp | ||
| 26 | @@ -146,7 +146,7 @@ operator""_toml(const char* str, std::si | ||
| 27 | // value of u8"" literal has been changed from char to char8_t and char8_t is | ||
| 28 | // NOT compatible to char | ||
| 29 | TOML11_INLINE ::toml::value | ||
| 30 | -operator"" _toml(const char8_t* str, std::size_t len) | ||
| 31 | +operator""_toml(const char8_t* str, std::size_t len) | ||
| 32 | { | ||
| 33 | if(len == 0) | ||
| 34 | { | ||
diff --git a/meta-oe/recipes-devtools/libtoml11/libtoml11_4.4.0.bb b/meta-oe/recipes-devtools/libtoml11/libtoml11_4.4.0.bb index 7e097e4612..49f9840f06 100644 --- a/meta-oe/recipes-devtools/libtoml11/libtoml11_4.4.0.bb +++ b/meta-oe/recipes-devtools/libtoml11/libtoml11_4.4.0.bb | |||
| @@ -16,12 +16,15 @@ PE = "1" | |||
| 16 | SRC_URI = "\ | 16 | SRC_URI = "\ |
| 17 | gitsm://github.com/ToruNiina/toml11.git;protocol=https;branch=main;tag=v${PV} \ | 17 | gitsm://github.com/ToruNiina/toml11.git;protocol=https;branch=main;tag=v${PV} \ |
| 18 | file://0001-Remove-whitespace-in-operator.patch \ | 18 | file://0001-Remove-whitespace-in-operator.patch \ |
| 19 | file://0001-Remove-more-whitespaces-after-operator.patch \ | ||
| 19 | file://run-ptest \ | 20 | file://run-ptest \ |
| 20 | " | 21 | " |
| 21 | SRCREV = "be08ba2be2a964edcdb3d3e3ea8d100abc26f286" | 22 | SRCREV = "be08ba2be2a964edcdb3d3e3ea8d100abc26f286" |
| 22 | 23 | ||
| 23 | inherit cmake ptest | 24 | inherit cmake ptest |
| 24 | 25 | ||
| 26 | CXXFLAGS:append:toolchain-clang = " -Wno-error=c2y-extensions" | ||
| 27 | |||
| 25 | EXTRA_OECMAKE += "-DTOML11_PRECOMPILE=ON \ | 28 | EXTRA_OECMAKE += "-DTOML11_PRECOMPILE=ON \ |
| 26 | -DTOML11_BUILD_TESTS=${@bb.utils.contains("PTEST_ENABLED", "1", "ON", "OFF", d)} \ | 29 | -DTOML11_BUILD_TESTS=${@bb.utils.contains("PTEST_ENABLED", "1", "ON", "OFF", d)} \ |
| 27 | " | 30 | " |
diff --git a/meta-oe/recipes-devtools/lshw/lshw_02.20.bb b/meta-oe/recipes-devtools/lshw/lshw_02.20.bb index 95e2084255..2f1367341a 100644 --- a/meta-oe/recipes-devtools/lshw/lshw_02.20.bb +++ b/meta-oe/recipes-devtools/lshw/lshw_02.20.bb | |||
| @@ -32,11 +32,11 @@ EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} RPM_OPT_FLAGS='${CFLAGS}'" | |||
| 32 | 32 | ||
| 33 | do_compile() { | 33 | do_compile() { |
| 34 | # build core only - don't ship gui | 34 | # build core only - don't ship gui |
| 35 | oe_runmake -C src core | 35 | oe_runmake -C src SBINDIR=${sbindir} core |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | do_install() { | 38 | do_install() { |
| 39 | oe_runmake install DESTDIR=${D} | 39 | oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | BBCLASSEXTEND = "native" | 42 | BBCLASSEXTEND = "native" |
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch deleted file mode 100644 index 61932269bd..0000000000 --- a/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch +++ /dev/null | |||
| @@ -1,86 +0,0 @@ | |||
| 1 | From 491b3b153f6b5cbf2d23a9778e5676eb29a6705f Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Mon, 6 Feb 2023 16:37:19 -0800 | ||
| 4 | Subject: [PATCH] Fix type of single bit bitfields | ||
| 5 | |||
| 6 | clang16 warns | ||
| 7 | trace.c:311:22: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion] | ||
| 8 | |||
| 9 | quash the warning by using an unsigned type to allow | ||
| 10 | an assignment of 0 or 1 without implicit conversion. | ||
| 11 | |||
| 12 | Upstream-Status: Pending | ||
| 13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 14 | --- | ||
| 15 | library.h | 6 +++--- | ||
| 16 | prototype.h | 2 +- | ||
| 17 | sysdeps/linux-gnu/trace.h | 10 +++++----- | ||
| 18 | 3 files changed, 9 insertions(+), 9 deletions(-) | ||
| 19 | |||
| 20 | --- a/library.h | ||
| 21 | +++ b/library.h | ||
| 22 | @@ -71,20 +71,20 @@ struct library_symbol { | ||
| 23 | * looking up one in LIB->protolib. */ | ||
| 24 | struct prototype *proto; | ||
| 25 | |||
| 26 | - int own_name : 1; | ||
| 27 | + unsigned int own_name : 1; | ||
| 28 | |||
| 29 | /* This is relevant for PLT symbols. Latent PLT symbols are | ||
| 30 | * those that don't match any of the -e rules, but that might | ||
| 31 | * potentially become active if a library implementing them | ||
| 32 | * appears that matches a -l rule. Ltrace core is responsible | ||
| 33 | * for clearing latent flag. */ | ||
| 34 | - int latent : 1; | ||
| 35 | + unsigned latent : 1; | ||
| 36 | |||
| 37 | /* Delayed symbols are those for which a breakpoint shouldn't | ||
| 38 | * be enabled yet. They are similar to latent symbols, but | ||
| 39 | * backend is responsible for clearing the delayed flag. See | ||
| 40 | * proc_activate_delayed_symbol. */ | ||
| 41 | - int delayed : 1; | ||
| 42 | + unsigned int delayed : 1; | ||
| 43 | |||
| 44 | struct arch_library_symbol_data arch; | ||
| 45 | struct os_library_symbol_data os; | ||
| 46 | --- a/prototype.h | ||
| 47 | +++ b/prototype.h | ||
| 48 | @@ -162,7 +162,7 @@ struct protolib_cache { | ||
| 49 | |||
| 50 | /* For tracking uses of cache during cache's own | ||
| 51 | * initialization. */ | ||
| 52 | - int bootstrap : 1; | ||
| 53 | + unsigned int bootstrap : 1; | ||
| 54 | }; | ||
| 55 | |||
| 56 | /* Initialize CACHE. Returns 0 on success or a negative value on | ||
| 57 | --- a/sysdeps/linux-gnu/trace.h | ||
| 58 | +++ b/sysdeps/linux-gnu/trace.h | ||
| 59 | @@ -33,11 +33,11 @@ | ||
| 60 | struct pid_task { | ||
| 61 | pid_t pid; /* This may be 0 for tasks that exited | ||
| 62 | * mid-handling. */ | ||
| 63 | - int sigstopped : 1; | ||
| 64 | - int got_event : 1; | ||
| 65 | - int delivered : 1; | ||
| 66 | - int vforked : 1; | ||
| 67 | - int sysret : 1; | ||
| 68 | + unsigned int sigstopped : 1; | ||
| 69 | + unsigned int got_event : 1; | ||
| 70 | + unsigned int delivered : 1; | ||
| 71 | + unsigned int vforked : 1; | ||
| 72 | + unsigned int sysret : 1; | ||
| 73 | }; | ||
| 74 | |||
| 75 | struct pid_set { | ||
| 76 | --- a/sysdeps/linux-gnu/trace.c | ||
| 77 | +++ b/sysdeps/linux-gnu/trace.c | ||
| 78 | @@ -1043,7 +1043,7 @@ ltrace_exiting_install_handler(struct pr | ||
| 79 | struct process_vfork_handler | ||
| 80 | { | ||
| 81 | struct event_handler super; | ||
| 82 | - int vfork_bp_refd:1; | ||
| 83 | + unsigned int vfork_bp_refd:1; | ||
| 84 | }; | ||
| 85 | |||
| 86 | static Event * | ||
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch deleted file mode 100644 index f3a6d9e599..0000000000 --- a/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch +++ /dev/null | |||
| @@ -1,27 +0,0 @@ | |||
| 1 | From c1d3aaf5ec810c2594938438c7b4ccd20943f255 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Fri, 7 Jul 2017 10:20:52 -0700 | ||
| 4 | Subject: [PATCH] configure: Recognise linux-musl as a host OS | ||
| 5 | |||
| 6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 7 | --- | ||
| 8 | Upstream-Status: Pending | ||
| 9 | |||
| 10 | configure.ac | 1 + | ||
| 11 | 1 file changed, 1 insertion(+) | ||
| 12 | |||
| 13 | diff --git a/configure.ac b/configure.ac | ||
| 14 | index 3e8667f..95d6642 100644 | ||
| 15 | --- a/configure.ac | ||
| 16 | +++ b/configure.ac | ||
| 17 | @@ -35,6 +35,7 @@ AC_CANONICAL_HOST | ||
| 18 | case "${host_os}" in | ||
| 19 | linux-gnu*) HOST_OS="linux-gnu" ;; | ||
| 20 | linux-uclibc*) HOST_OS="linux-gnu" ;; | ||
| 21 | + linux-musl*) HOST_OS="linux-gnu" ;; | ||
| 22 | *) AC_MSG_ERROR([unkown host-os ${host_os}]) ;; | ||
| 23 | esac | ||
| 24 | AC_SUBST(HOST_OS) | ||
| 25 | -- | ||
| 26 | 2.13.2 | ||
| 27 | |||
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-dwarf_prototypes-return-NULL-from-NEXT_SIBLING-on-er.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-dwarf_prototypes-return-NULL-from-NEXT_SIBLING-on-er.patch new file mode 100644 index 0000000000..e7aa0fdabe --- /dev/null +++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-dwarf_prototypes-return-NULL-from-NEXT_SIBLING-on-er.patch | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | From d568c0cbdecf31a7020f2a0574470d014f447a86 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <khem.raj@oss.qualcomm.com> | ||
| 3 | Date: Sun, 12 Apr 2026 00:07:06 -0700 | ||
| 4 | Subject: [PATCH] dwarf_prototypes: return NULL from NEXT_SIBLING on error | ||
| 5 | |||
| 6 | NEXT_SIBLING is used in functions that return pointers, so returning | ||
| 7 | false on error is misleading and relies on implicit conversion. | ||
| 8 | Return (void *)0 instead to make the failure value explicit and match | ||
| 9 | the surrounding function return type. | ||
| 10 | |||
| 11 | This is flagged by clang-22 due to | ||
| 12 | Replacing return false with return (void *)0 | ||
| 13 | avoids clang's -Wbool-conversion error when the macro expands | ||
| 14 | inside functions returning a pointer type. | ||
| 15 | |||
| 16 | Upstream-Status: Submitted [https://gitlab.com/cespedes/ltrace/-/merge_requests/30] | ||
| 17 | Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com> | ||
| 18 | --- | ||
| 19 | dwarf_prototypes.c | 2 +- | ||
| 20 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 21 | |||
| 22 | diff --git a/dwarf_prototypes.c b/dwarf_prototypes.c | ||
| 23 | index bfac177..e7ea1bc 100644 | ||
| 24 | --- a/dwarf_prototypes.c | ||
| 25 | +++ b/dwarf_prototypes.c | ||
| 26 | @@ -36,7 +36,7 @@ | ||
| 27 | #define NEXT_SIBLING(die) \ | ||
| 28 | int res = dwarf_siblingof(die, die); \ | ||
| 29 | if (res == 0) continue; /* sibling exists */ \ | ||
| 30 | - if (res < 0) return false; /* error */ \ | ||
| 31 | + if (res < 0) return (void *)0; /* error */ \ | ||
| 32 | break /* no sibling exists */ | ||
| 33 | |||
| 34 | static struct arg_type_info *get_type(int *newly_allocated_info, | ||
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-trace-fix-1-bit-bitfield-assignments-for-clang-Wsing.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-trace-fix-1-bit-bitfield-assignments-for-clang-Wsing.patch new file mode 100644 index 0000000000..0f8a9766f4 --- /dev/null +++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-trace-fix-1-bit-bitfield-assignments-for-clang-Wsing.patch | |||
| @@ -0,0 +1,86 @@ | |||
| 1 | From 65c5a621a366a25b8572cd29c01b4aa92c02903a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <khem.raj@oss.qualcomm.com> | ||
| 3 | Date: Sun, 12 Apr 2026 00:46:20 -0700 | ||
| 4 | Subject: [PATCH] trace: fix 1-bit bitfield assignments for clang | ||
| 5 | -Wsingle-bit-bitfield-constant-conversion | ||
| 6 | |||
| 7 | Replace '1' with 'true' for all 1-bit signed bitfield assignments. | ||
| 8 | Assigning integer 1 to a 1-bit signed bitfield truncates to -1; using | ||
| 9 | 'true' which is a bool is well-defined and avoids the clang error. | ||
| 10 | |||
| 11 | Upstream-Status: Submitted [https://gitlab.com/cespedes/ltrace/-/merge_requests/30] | ||
| 12 | Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com> | ||
| 13 | --- | ||
| 14 | ltrace-elf.c | 2 +- | ||
| 15 | sysdeps/linux-gnu/trace.c | 12 ++++++------ | ||
| 16 | 2 files changed, 7 insertions(+), 7 deletions(-) | ||
| 17 | |||
| 18 | diff --git a/ltrace-elf.c b/ltrace-elf.c | ||
| 19 | index beaf69f..2be609c 100644 | ||
| 20 | --- a/ltrace-elf.c | ||
| 21 | +++ b/ltrace-elf.c | ||
| 22 | @@ -819,7 +819,7 @@ mark_chain_latent(struct library_symbol *libsym) | ||
| 23 | { | ||
| 24 | for (; libsym != NULL; libsym = libsym->next) { | ||
| 25 | debug(DEBUG_FUNCTION, "marking %s latent", libsym->name); | ||
| 26 | - libsym->latent = 1; | ||
| 27 | + libsym->latent = true; | ||
| 28 | } | ||
| 29 | } | ||
| 30 | |||
| 31 | diff --git a/sysdeps/linux-gnu/trace.c b/sysdeps/linux-gnu/trace.c | ||
| 32 | index 12c8747..b7f4c57 100644 | ||
| 33 | --- a/sysdeps/linux-gnu/trace.c | ||
| 34 | +++ b/sysdeps/linux-gnu/trace.c | ||
| 35 | @@ -310,13 +310,13 @@ send_sigstop(struct process *task, void *data) | ||
| 36 | * weed out unnecessary looping. */ | ||
| 37 | if (st == PS_SLEEPING | ||
| 38 | && is_vfork_parent(task)) { | ||
| 39 | - task_info->vforked = 1; | ||
| 40 | + task_info->vforked = true; | ||
| 41 | return CBS_CONT; | ||
| 42 | } | ||
| 43 | |||
| 44 | if (task_kill(task->pid, SIGSTOP) >= 0) { | ||
| 45 | debug(DEBUG_PROCESS, "send SIGSTOP to %d", task->pid); | ||
| 46 | - task_info->sigstopped = 1; | ||
| 47 | + task_info->sigstopped = true; | ||
| 48 | } else | ||
| 49 | fprintf(stderr, | ||
| 50 | "Warning: couldn't send SIGSTOP to %d\n", task->pid); | ||
| 51 | @@ -442,7 +442,7 @@ handle_stopping_event(struct pid_task *task_info, Event **eventp) | ||
| 52 | { | ||
| 53 | /* Mark all events, so that we know whom to SIGCONT later. */ | ||
| 54 | if (task_info != NULL) | ||
| 55 | - task_info->got_event = 1; | ||
| 56 | + task_info->got_event = true; | ||
| 57 | |||
| 58 | Event *event = *eventp; | ||
| 59 | |||
| 60 | @@ -454,7 +454,7 @@ handle_stopping_event(struct pid_task *task_info, Event **eventp) | ||
| 61 | debug(DEBUG_PROCESS, "SIGSTOP delivered to %d", task_info->pid); | ||
| 62 | if (task_info->sigstopped | ||
| 63 | && !task_info->delivered) { | ||
| 64 | - task_info->delivered = 1; | ||
| 65 | + task_info->delivered = true; | ||
| 66 | *eventp = NULL; // sink the event | ||
| 67 | } else | ||
| 68 | fprintf(stderr, "suspicious: %d got SIGSTOP, but " | ||
| 69 | @@ -748,7 +748,7 @@ process_stopping_on_event(struct event_handler *super, Event *event) | ||
| 70 | debug(1, "%d LT_EV_SYSRET", event->proc->pid); | ||
| 71 | event_to_queue = 0; | ||
| 72 | if (task_info != NULL) | ||
| 73 | - task_info->sysret = 1; | ||
| 74 | + task_info->sysret = true; | ||
| 75 | } | ||
| 76 | |||
| 77 | switch (state) { | ||
| 78 | @@ -1070,7 +1070,7 @@ process_vfork_on_event(struct event_handler *super, Event *event) | ||
| 79 | &event->e_un.brk_addr, &sbp); | ||
| 80 | assert(sbp != NULL); | ||
| 81 | breakpoint_turn_on(sbp, proc->leader); | ||
| 82 | - self->vfork_bp_refd = 1; | ||
| 83 | + self->vfork_bp_refd = true; | ||
| 84 | } | ||
| 85 | break; | ||
| 86 | |||
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-oe/recipes-devtools/ltrace/ltrace_0.8.1.bb index f84d989eef..77bb61830b 100644 --- a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb +++ b/meta-oe/recipes-devtools/ltrace/ltrace_0.8.1.bb | |||
| @@ -9,25 +9,24 @@ HOMEPAGE = "http://ltrace.org/" | |||
| 9 | LICENSE = "GPL-2.0-only" | 9 | LICENSE = "GPL-2.0-only" |
| 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" | 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a" |
| 11 | 11 | ||
| 12 | PE = "1" | 12 | PE = "2" |
| 13 | PV = "7.91+git" | 13 | SRCREV = "7ef6e6097586b751cce298c256a919404dab259d" |
| 14 | SRCREV = "8eabf684ba6b11ae7a1a843aca3c0657c6329d73" | ||
| 15 | 14 | ||
| 16 | DEPENDS = "elfutils" | 15 | DEPENDS = "elfutils" |
| 17 | SRC_URI = "git://gitlab.com/cespedes/ltrace.git;protocol=https;branch=main \ | 16 | SRC_URI = "git://gitlab.com/cespedes/ltrace.git;protocol=https;branch=main;tag=${PV} \ |
| 18 | file://configure-allow-to-disable-selinux-support.patch \ | 17 | file://configure-allow-to-disable-selinux-support.patch \ |
| 19 | file://0001-Use-correct-enum-type.patch \ | 18 | file://0001-Use-correct-enum-type.patch \ |
| 20 | file://0002-Fix-const-qualifier-error.patch \ | 19 | file://0002-Fix-const-qualifier-error.patch \ |
| 21 | file://0001-Add-support-for-mips64-n32-n64.patch \ | 20 | file://0001-Add-support-for-mips64-n32-n64.patch \ |
| 22 | file://0001-configure-Recognise-linux-musl-as-a-host-OS.patch \ | ||
| 23 | file://0001-mips-plt.c-Delete-include-error.h.patch \ | 21 | file://0001-mips-plt.c-Delete-include-error.h.patch \ |
| 24 | file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \ | 22 | file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \ |
| 25 | file://0001-hook-Do-not-append-int-to-std-string.patch \ | 23 | file://0001-hook-Do-not-append-int-to-std-string.patch \ |
| 26 | file://0001-Bug-fix-for-data-type-length-judgment.patch \ | 24 | file://0001-Bug-fix-for-data-type-length-judgment.patch \ |
| 27 | file://0001-ppc-Remove-unused-host_powerpc64-function.patch \ | 25 | file://0001-ppc-Remove-unused-host_powerpc64-function.patch \ |
| 28 | file://0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch \ | 26 | file://0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch \ |
| 29 | file://0001-Fix-type-of-single-bit-bitfields.patch \ | ||
| 30 | file://0001-proc-Make-PROC_PID_FILE-not-use-variable-length-arra.patch \ | 27 | file://0001-proc-Make-PROC_PID_FILE-not-use-variable-length-arra.patch \ |
| 28 | file://0001-dwarf_prototypes-return-NULL-from-NEXT_SIBLING-on-er.patch \ | ||
| 29 | file://0001-trace-fix-1-bit-bitfield-assignments-for-clang-Wsing.patch \ | ||
| 31 | " | 30 | " |
| 32 | SRC_URI:append:libc-musl = " file://add_ppc64le.patch" | 31 | SRC_URI:append:libc-musl = " file://add_ppc64le.patch" |
| 33 | 32 | ||
diff --git a/meta-oe/recipes-devtools/luajit/luajit_git.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb index 9d392f1c29..9873ed6f05 100644 --- a/meta-oe/recipes-devtools/luajit/luajit_git.bb +++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | SUMMARY = "Just-In-Time Compiler for Lua" | 1 | SUMMARY = "Just-In-Time Compiler for Lua" |
| 2 | LICENSE = "MIT" | 2 | LICENSE = "MIT" |
| 3 | LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=d421a5e2a24207f5e260537399a9a38b" | 3 | LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=a2c43bf4a9ea63755af2131b0ae59ff3" |
| 4 | HOMEPAGE = "http://luajit.org" | 4 | HOMEPAGE = "http://luajit.org" |
| 5 | 5 | ||
| 6 | SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1 \ | 6 | SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1 \ |
| @@ -9,7 +9,7 @@ SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1 \ | |||
| 9 | " | 9 | " |
| 10 | 10 | ||
| 11 | PV = "2.1" | 11 | PV = "2.1" |
| 12 | SRCREV = "538a82133ad6fddfd0ca64de167c4aca3bc1a2da" | 12 | SRCREV = "659a61693aa3b87661864ad0f12eee14c865cd7f" |
| 13 | 13 | ||
| 14 | inherit pkgconfig binconfig siteinfo | 14 | inherit pkgconfig binconfig siteinfo |
| 15 | 15 | ||
diff --git a/meta-oe/recipes-devtools/mpich/mpich_5.0.0.bb b/meta-oe/recipes-devtools/mpich/mpich_5.0.1.bb index 505fc6f92b..55f6cde82f 100644 --- a/meta-oe/recipes-devtools/mpich/mpich_5.0.0.bb +++ b/meta-oe/recipes-devtools/mpich/mpich_5.0.1.bb | |||
| @@ -6,7 +6,7 @@ LICENSE = "BSD-2-Clause" | |||
| 6 | LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3a296dfb961b957b0e8adf67d8478d3d" | 6 | LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3a296dfb961b957b0e8adf67d8478d3d" |
| 7 | 7 | ||
| 8 | SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz" | 8 | SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz" |
| 9 | SRC_URI[sha256sum] = "e9350e32224283e95311f22134f36c98e3cd1c665d17fae20a6cc92ed3cffe11" | 9 | SRC_URI[sha256sum] = "8c1832a13ddacf071685069f5fadfd1f2877a29e1a628652892c65211b1f3327" |
| 10 | 10 | ||
| 11 | RDEPENDS:${PN} += "bash perl libxml2" | 11 | RDEPENDS:${PN} += "bash perl libxml2" |
| 12 | 12 | ||
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_22.22.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_22.22.2.bb index 09d6b896b2..3a1385f70a 100644 --- a/meta-oe/recipes-devtools/nodejs/nodejs_22.22.1.bb +++ b/meta-oe/recipes-devtools/nodejs/nodejs_22.22.2.bb | |||
| @@ -42,7 +42,7 @@ SRC_URI:append:class-target = " \ | |||
| 42 | SRC_URI:append:toolchain-clang:powerpc64le = " \ | 42 | SRC_URI:append:toolchain-clang:powerpc64le = " \ |
| 43 | file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \ | 43 | file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \ |
| 44 | " | 44 | " |
| 45 | SRC_URI[sha256sum] = "87104b07e7acee748bcc5391e1bc69cf3571caa0fdfb8b1d6b5fd3f9599b7849" | 45 | SRC_URI[sha256sum] = "b6bedd3a8cacd5df7df015a5088264b12c74a277ba60684cb9642ae8eb743132" |
| 46 | 46 | ||
| 47 | S = "${UNPACKDIR}/node-v${PV}" | 47 | S = "${UNPACKDIR}/node-v${PV}" |
| 48 | 48 | ||
| @@ -214,3 +214,11 @@ python __anonymous () { | |||
| 214 | } | 214 | } |
| 215 | 215 | ||
| 216 | BBCLASSEXTEND = "native" | 216 | BBCLASSEXTEND = "native" |
| 217 | |||
| 218 | CVE_STATUS[CVE-2026-21710] = "fixed-version: fixed since v22.22.2" | ||
| 219 | CVE_STATUS[CVE-2026-21712] = "cpe-incorrect: only v24 and v25 are affected" | ||
| 220 | CVE_STATUS[CVE-2026-21713] = "fixed-version: fixed since v22.22.2" | ||
| 221 | CVE_STATUS[CVE-2026-21714] = "fixed-version: fixed since v22.22.2" | ||
| 222 | CVE_STATUS[CVE-2026-21715] = "fixed-version: fixed since v22.22.2" | ||
| 223 | CVE_STATUS[CVE-2026-21716] = "fixed-version: fixed since v22.22.2" | ||
| 224 | CVE_STATUS[CVE-2026-21717] = "fixed-version: fixed since v22.22.2" | ||
diff --git a/meta-oe/recipes-devtools/php/php_8.5.4.bb b/meta-oe/recipes-devtools/php/php_8.5.5.bb index efa778b6d8..2924b478ad 100644 --- a/meta-oe/recipes-devtools/php/php_8.5.4.bb +++ b/meta-oe/recipes-devtools/php/php_8.5.5.bb | |||
| @@ -32,7 +32,7 @@ UPSTREAM_CHECK_REGEX = "releases/tag/php-(?P<pver>\d+(\.\d+)+)" | |||
| 32 | 32 | ||
| 33 | S = "${UNPACKDIR}/php-${PV}" | 33 | S = "${UNPACKDIR}/php-${PV}" |
| 34 | 34 | ||
| 35 | SRC_URI[sha256sum] = "2ac929a29a6b7ef4b8acec981a417b91bdf7f548f597df665cc56ab9ea95fc75" | 35 | SRC_URI[sha256sum] = "ee262beff61c431965d1f97192854b36208adeac38983c3498bb3500ae87283c" |
| 36 | 36 | ||
| 37 | CVE_STATUS_GROUPS += "CVE_STATUS_PHP" | 37 | CVE_STATUS_GROUPS += "CVE_STATUS_PHP" |
| 38 | CVE_STATUS_PHP[status] = "fixed-version: The name of this product is exactly the same as github.com/emlog/emlog. CVE can be safely ignored." | 38 | CVE_STATUS_PHP[status] = "fixed-version: The name of this product is exactly the same as github.com/emlog/emlog. CVE can be safely ignored." |
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf-30.patch b/meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf-30.patch deleted file mode 100644 index 1aae1f17b0..0000000000 --- a/meta-oe/recipes-devtools/protobuf/protobuf-c/protobuf-30.patch +++ /dev/null | |||
| @@ -1,1446 +0,0 @@ | |||
| 1 | From b28683f8027bf1e886b748b5603eb16d203b5a92 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 3 | Date: Sat, 8 Feb 2025 18:18:33 -0500 | ||
| 4 | Subject: [PATCH 01/11] protoc-gen-c/c_helpers.h: Move compat defines into new | ||
| 5 | header file compat.h | ||
| 6 | |||
| 7 | Upstream-Status: Backport [https://gitlab.archlinux.org/archlinux/packaging/packages/protobuf-c/-/blob/main/protobuf-30.patch] | ||
| 8 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
| 9 | |||
| 10 | --- | ||
| 11 | protoc-gen-c/c_field.cc | 1 + | ||
| 12 | protoc-gen-c/c_helpers.cc | 1 + | ||
| 13 | protoc-gen-c/c_helpers.h | 10 ------- | ||
| 14 | protoc-gen-c/c_message.cc | 1 + | ||
| 15 | protoc-gen-c/c_primitive_field.cc | 1 + | ||
| 16 | protoc-gen-c/compat.h | 46 +++++++++++++++++++++++++++++++ | ||
| 17 | protoc-gen-c/main.cc | 1 + | ||
| 18 | 7 files changed, 51 insertions(+), 10 deletions(-) | ||
| 19 | create mode 100644 protoc-gen-c/compat.h | ||
| 20 | |||
| 21 | diff --git a/protoc-gen-c/c_field.cc b/protoc-gen-c/c_field.cc | ||
| 22 | index 5e79967b..d6d8597e 100644 | ||
| 23 | --- a/protoc-gen-c/c_field.cc | ||
| 24 | +++ b/protoc-gen-c/c_field.cc | ||
| 25 | @@ -74,6 +74,7 @@ | ||
| 26 | #include "c_message_field.h" | ||
| 27 | #include "c_primitive_field.h" | ||
| 28 | #include "c_string_field.h" | ||
| 29 | +#include "compat.h" | ||
| 30 | |||
| 31 | namespace protobuf_c { | ||
| 32 | |||
| 33 | diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc | ||
| 34 | index 5edcf904..c38843f8 100644 | ||
| 35 | --- a/protoc-gen-c/c_helpers.cc | ||
| 36 | +++ b/protoc-gen-c/c_helpers.cc | ||
| 37 | @@ -73,6 +73,7 @@ | ||
| 38 | #include <google/protobuf/stubs/common.h> | ||
| 39 | |||
| 40 | #include "c_helpers.h" | ||
| 41 | +#include "compat.h" | ||
| 42 | |||
| 43 | namespace protobuf_c { | ||
| 44 | |||
| 45 | diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h | ||
| 46 | index 943676e9..e69504bb 100644 | ||
| 47 | --- a/protoc-gen-c/c_helpers.h | ||
| 48 | +++ b/protoc-gen-c/c_helpers.h | ||
| 49 | @@ -186,16 +186,6 @@ inline int FieldSyntax(const google::protobuf::FieldDescriptor* field) { | ||
| 50 | return 2; | ||
| 51 | } | ||
| 52 | |||
| 53 | -// Work around changes in protobuf >= 22.x without breaking compilation against | ||
| 54 | -// older protobuf versions. | ||
| 55 | -#if GOOGLE_PROTOBUF_VERSION >= 4022000 | ||
| 56 | -# define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE | ||
| 57 | -# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ | ||
| 58 | -# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ | ||
| 59 | -# define GOOGLE_DCHECK_GE ABSL_DCHECK_GE | ||
| 60 | -# define GOOGLE_LOG ABSL_LOG | ||
| 61 | -#endif | ||
| 62 | - | ||
| 63 | } // namespace protobuf_c | ||
| 64 | |||
| 65 | #endif // PROTOBUF_C_PROTOC_GEN_C_C_HELPERS_H__ | ||
| 66 | diff --git a/protoc-gen-c/c_message.cc b/protoc-gen-c/c_message.cc | ||
| 67 | index d4a9a01e..46413873 100644 | ||
| 68 | --- a/protoc-gen-c/c_message.cc | ||
| 69 | +++ b/protoc-gen-c/c_message.cc | ||
| 70 | @@ -78,6 +78,7 @@ | ||
| 71 | #include "c_extension.h" | ||
| 72 | #include "c_helpers.h" | ||
| 73 | #include "c_message.h" | ||
| 74 | +#include "compat.h" | ||
| 75 | |||
| 76 | namespace protobuf_c { | ||
| 77 | |||
| 78 | diff --git a/protoc-gen-c/c_primitive_field.cc b/protoc-gen-c/c_primitive_field.cc | ||
| 79 | index 253b00bd..588f60e6 100644 | ||
| 80 | --- a/protoc-gen-c/c_primitive_field.cc | ||
| 81 | +++ b/protoc-gen-c/c_primitive_field.cc | ||
| 82 | @@ -67,6 +67,7 @@ | ||
| 83 | |||
| 84 | #include "c_helpers.h" | ||
| 85 | #include "c_primitive_field.h" | ||
| 86 | +#include "compat.h" | ||
| 87 | |||
| 88 | namespace protobuf_c { | ||
| 89 | |||
| 90 | diff --git a/protoc-gen-c/compat.h b/protoc-gen-c/compat.h | ||
| 91 | new file mode 100644 | ||
| 92 | index 00000000..2ee78281 | ||
| 93 | --- /dev/null | ||
| 94 | +++ b/protoc-gen-c/compat.h | ||
| 95 | @@ -0,0 +1,46 @@ | ||
| 96 | +// Copyright (c) 2008-2025, Dave Benson and the protobuf-c authors. | ||
| 97 | +// All rights reserved. | ||
| 98 | +// | ||
| 99 | +// Redistribution and use in source and binary forms, with or without | ||
| 100 | +// modification, are permitted provided that the following conditions are | ||
| 101 | +// met: | ||
| 102 | +// | ||
| 103 | +// * Redistributions of source code must retain the above copyright | ||
| 104 | +// notice, this list of conditions and the following disclaimer. | ||
| 105 | +// | ||
| 106 | +// * Redistributions in binary form must reproduce the above | ||
| 107 | +// copyright notice, this list of conditions and the following disclaimer | ||
| 108 | +// in the documentation and/or other materials provided with the | ||
| 109 | +// distribution. | ||
| 110 | +// | ||
| 111 | +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
| 112 | +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| 113 | +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| 114 | +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| 115 | +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 116 | +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| 117 | +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| 118 | +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| 119 | +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| 120 | +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
| 121 | +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 122 | + | ||
| 123 | +#ifndef PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__ | ||
| 124 | +#define PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__ | ||
| 125 | + | ||
| 126 | +#if GOOGLE_PROTOBUF_VERSION >= 4022000 | ||
| 127 | +# define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE | ||
| 128 | +# define GOOGLE_CHECK_EQ ABSL_CHECK_EQ | ||
| 129 | +# define GOOGLE_DCHECK_GE ABSL_DCHECK_GE | ||
| 130 | +# define GOOGLE_LOG ABSL_LOG | ||
| 131 | +#endif | ||
| 132 | + | ||
| 133 | +namespace protobuf_c { | ||
| 134 | + | ||
| 135 | +namespace compat { | ||
| 136 | + | ||
| 137 | +} // namespace compat | ||
| 138 | + | ||
| 139 | +} // namespace protobuf_c | ||
| 140 | + | ||
| 141 | +#endif // PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__ | ||
| 142 | diff --git a/protoc-gen-c/main.cc b/protoc-gen-c/main.cc | ||
| 143 | index 0656c113..5ab929d3 100644 | ||
| 144 | --- a/protoc-gen-c/main.cc | ||
| 145 | +++ b/protoc-gen-c/main.cc | ||
| 146 | @@ -32,6 +32,7 @@ | ||
| 147 | |||
| 148 | #include "c_generator.h" | ||
| 149 | #include "c_helpers.h" | ||
| 150 | +#include "compat.h" | ||
| 151 | |||
| 152 | int main(int argc, char* argv[]) { | ||
| 153 | protobuf_c::CGenerator c_generator; | ||
| 154 | |||
| 155 | From 1678f1fba6f2d3e5c1db2817495ddcd72bd4e87b Mon Sep 17 00:00:00 2001 | ||
| 156 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 157 | Date: Sat, 8 Feb 2025 20:09:03 -0500 | ||
| 158 | Subject: [PATCH 02/11] protoc-gen-c/compat.h: Add `compat::StringView` type | ||
| 159 | |||
| 160 | protobuf >= 30.x replaces `const std::string&` in various APIs with | ||
| 161 | its own string view type that may actually be a `absl::string_view`. | ||
| 162 | Introduce our own `compat::StringView` type that we can use instead | ||
| 163 | of `const std::string&` in order to support compiling across multiple | ||
| 164 | protobuf versions. | ||
| 165 | --- | ||
| 166 | protoc-gen-c/compat.h | 8 ++++++++ | ||
| 167 | 1 file changed, 8 insertions(+) | ||
| 168 | |||
| 169 | diff --git a/protoc-gen-c/compat.h b/protoc-gen-c/compat.h | ||
| 170 | index 2ee78281..fe8041b5 100644 | ||
| 171 | --- a/protoc-gen-c/compat.h | ||
| 172 | +++ b/protoc-gen-c/compat.h | ||
| 173 | @@ -28,6 +28,8 @@ | ||
| 174 | #ifndef PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__ | ||
| 175 | #define PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__ | ||
| 176 | |||
| 177 | +#include <string> | ||
| 178 | + | ||
| 179 | #if GOOGLE_PROTOBUF_VERSION >= 4022000 | ||
| 180 | # define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE | ||
| 181 | # define GOOGLE_CHECK_EQ ABSL_CHECK_EQ | ||
| 182 | @@ -39,6 +41,12 @@ namespace protobuf_c { | ||
| 183 | |||
| 184 | namespace compat { | ||
| 185 | |||
| 186 | +#if GOOGLE_PROTOBUF_VERSION >= 6030000 | ||
| 187 | +typedef google::protobuf::internal::DescriptorStringView StringView; | ||
| 188 | +#else | ||
| 189 | +typedef const std::string& StringView; | ||
| 190 | +#endif | ||
| 191 | + | ||
| 192 | } // namespace compat | ||
| 193 | |||
| 194 | } // namespace protobuf_c | ||
| 195 | |||
| 196 | From db5252c131c82fb48ee599179b6989a577b7fbc8 Mon Sep 17 00:00:00 2001 | ||
| 197 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 198 | Date: Sat, 8 Feb 2025 20:13:44 -0500 | ||
| 199 | Subject: [PATCH 03/11] Remove some unused functions | ||
| 200 | |||
| 201 | --- | ||
| 202 | protoc-gen-c/c_helpers.cc | 64 --------------------------------------- | ||
| 203 | protoc-gen-c/c_helpers.h | 3 -- | ||
| 204 | 2 files changed, 67 deletions(-) | ||
| 205 | |||
| 206 | diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc | ||
| 207 | index c38843f8..bbb4a615 100644 | ||
| 208 | --- a/protoc-gen-c/c_helpers.cc | ||
| 209 | +++ b/protoc-gen-c/c_helpers.cc | ||
| 210 | @@ -90,14 +90,6 @@ namespace protobuf_c { | ||
| 211 | #pragma warning(disable:4996) | ||
| 212 | #endif | ||
| 213 | |||
| 214 | -std::string DotsToUnderscores(const std::string& name) { | ||
| 215 | - return StringReplace(name, ".", "_", true); | ||
| 216 | -} | ||
| 217 | - | ||
| 218 | -std::string DotsToColons(const std::string& name) { | ||
| 219 | - return StringReplace(name, ".", "::", true); | ||
| 220 | -} | ||
| 221 | - | ||
| 222 | std::string SimpleFtoa(float f) { | ||
| 223 | char buf[100]; | ||
| 224 | snprintf(buf,sizeof(buf),"%.*g", FLT_DIG, f); | ||
| 225 | @@ -333,11 +325,6 @@ std::string FilenameIdentifier(const std::string& filename) { | ||
| 226 | return result; | ||
| 227 | } | ||
| 228 | |||
| 229 | -// Return the name of the BuildDescriptors() function for a given file. | ||
| 230 | -std::string GlobalBuildDescriptorsName(const std::string& filename) { | ||
| 231 | - return "proto_BuildDescriptors_" + FilenameIdentifier(filename); | ||
| 232 | -} | ||
| 233 | - | ||
| 234 | std::string GetLabelName(google::protobuf::FieldDescriptor::Label label) { | ||
| 235 | switch (label) { | ||
| 236 | case google::protobuf::FieldDescriptor::LABEL_OPTIONAL: return "optional"; | ||
| 237 | @@ -392,57 +379,6 @@ WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int * | ||
| 238 | } | ||
| 239 | } | ||
| 240 | |||
| 241 | - | ||
| 242 | - | ||
| 243 | -// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx | ||
| 244 | -// XXXXXXXXX this stuff is copied from strutils.cc !!!! XXXXXXXXXXXXXXXXXXXXXXXXXXXXx | ||
| 245 | -// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx | ||
| 246 | -// ---------------------------------------------------------------------- | ||
| 247 | -// StringReplace() | ||
| 248 | -// Replace the "old" pattern with the "new" pattern in a string, | ||
| 249 | -// and append the result to "res". If replace_all is false, | ||
| 250 | -// it only replaces the first instance of "old." | ||
| 251 | -// ---------------------------------------------------------------------- | ||
| 252 | - | ||
| 253 | -void StringReplace(const std::string& s, const std::string& oldsub, | ||
| 254 | - const std::string& newsub, bool replace_all, | ||
| 255 | - std::string* res) { | ||
| 256 | - if (oldsub.empty()) { | ||
| 257 | - res->append(s); // if empty, append the given string. | ||
| 258 | - return; | ||
| 259 | - } | ||
| 260 | - | ||
| 261 | - std::string::size_type start_pos = 0; | ||
| 262 | - std::string::size_type pos; | ||
| 263 | - do { | ||
| 264 | - pos = s.find(oldsub, start_pos); | ||
| 265 | - if (pos == std::string::npos) { | ||
| 266 | - break; | ||
| 267 | - } | ||
| 268 | - res->append(s, start_pos, pos - start_pos); | ||
| 269 | - res->append(newsub); | ||
| 270 | - start_pos = pos + oldsub.size(); // start searching again after the "old" | ||
| 271 | - } while (replace_all); | ||
| 272 | - res->append(s, start_pos, s.length() - start_pos); | ||
| 273 | -} | ||
| 274 | - | ||
| 275 | - | ||
| 276 | -// ---------------------------------------------------------------------- | ||
| 277 | -// StringReplace() | ||
| 278 | -// Give me a string and two patterns "old" and "new", and I replace | ||
| 279 | -// the first instance of "old" in the string with "new", if it | ||
| 280 | -// exists. If "global" is true; call this repeatedly until it | ||
| 281 | -// fails. RETURN a new string, regardless of whether the replacement | ||
| 282 | -// happened or not. | ||
| 283 | -// ---------------------------------------------------------------------- | ||
| 284 | - | ||
| 285 | -std::string StringReplace(const std::string& s, const std::string& oldsub, | ||
| 286 | - const std::string& newsub, bool replace_all) { | ||
| 287 | - std::string ret; | ||
| 288 | - StringReplace(s, oldsub, newsub, replace_all, &ret); | ||
| 289 | - return ret; | ||
| 290 | -} | ||
| 291 | - | ||
| 292 | // ---------------------------------------------------------------------- | ||
| 293 | // SplitStringUsing() | ||
| 294 | // Split a string using a character delimiter. Append the components | ||
| 295 | diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h | ||
| 296 | index e69504bb..377d4272 100644 | ||
| 297 | --- a/protoc-gen-c/c_helpers.h | ||
| 298 | +++ b/protoc-gen-c/c_helpers.h | ||
| 299 | @@ -150,9 +150,6 @@ const char* DeclaredTypeMethodName(google::protobuf::FieldDescriptor::Type type) | ||
| 300 | // Convert a file name into a valid identifier. | ||
| 301 | std::string FilenameIdentifier(const std::string& filename); | ||
| 302 | |||
| 303 | -// Return the name of the BuildDescriptors() function for a given file. | ||
| 304 | -std::string GlobalBuildDescriptorsName(const std::string& filename); | ||
| 305 | - | ||
| 306 | // return 'required', 'optional', or 'repeated' | ||
| 307 | std::string GetLabelName(google::protobuf::FieldDescriptor::Label label); | ||
| 308 | |||
| 309 | |||
| 310 | From bc2cb66d908f016dd3f7082c8a6ad7c58bc03412 Mon Sep 17 00:00:00 2001 | ||
| 311 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 312 | Date: Sat, 8 Feb 2025 20:18:05 -0500 | ||
| 313 | Subject: [PATCH 04/11] Use `compat::StringView` type across various function | ||
| 314 | signatures | ||
| 315 | |||
| 316 | --- | ||
| 317 | protoc-gen-c/c_helpers.cc | 44 +++++++++++++++++++++------------------ | ||
| 318 | protoc-gen-c/c_helpers.h | 36 ++++++++++++++++---------------- | ||
| 319 | 2 files changed, 42 insertions(+), 38 deletions(-) | ||
| 320 | |||
| 321 | diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc | ||
| 322 | index bbb4a615..c759c8c2 100644 | ||
| 323 | --- a/protoc-gen-c/c_helpers.cc | ||
| 324 | +++ b/protoc-gen-c/c_helpers.cc | ||
| 325 | @@ -96,6 +96,7 @@ std::string SimpleFtoa(float f) { | ||
| 326 | buf[sizeof(buf)-1] = 0; /* should NOT be necessary */ | ||
| 327 | return buf; | ||
| 328 | } | ||
| 329 | + | ||
| 330 | std::string SimpleDtoa(double d) { | ||
| 331 | char buf[100]; | ||
| 332 | snprintf(buf,sizeof(buf),"%.*g", DBL_DIG, d); | ||
| 333 | @@ -103,7 +104,7 @@ std::string SimpleDtoa(double d) { | ||
| 334 | return buf; | ||
| 335 | } | ||
| 336 | |||
| 337 | -std::string CamelToUpper(const std::string &name) { | ||
| 338 | +std::string CamelToUpper(compat::StringView name) { | ||
| 339 | bool was_upper = true; // suppress initial _ | ||
| 340 | std::string rv = ""; | ||
| 341 | int len = name.length(); | ||
| 342 | @@ -120,7 +121,8 @@ std::string CamelToUpper(const std::string &name) { | ||
| 343 | } | ||
| 344 | return rv; | ||
| 345 | } | ||
| 346 | -std::string CamelToLower(const std::string &name) { | ||
| 347 | + | ||
| 348 | +std::string CamelToLower(compat::StringView name) { | ||
| 349 | bool was_upper = true; // suppress initial _ | ||
| 350 | std::string rv = ""; | ||
| 351 | int len = name.length(); | ||
| 352 | @@ -138,8 +140,7 @@ std::string CamelToLower(const std::string &name) { | ||
| 353 | return rv; | ||
| 354 | } | ||
| 355 | |||
| 356 | - | ||
| 357 | -std::string ToUpper(const std::string &name) { | ||
| 358 | +std::string ToUpper(compat::StringView name) { | ||
| 359 | std::string rv = ""; | ||
| 360 | int len = name.length(); | ||
| 361 | for (int i = 0; i < len; i++) { | ||
| 362 | @@ -147,7 +148,8 @@ std::string ToUpper(const std::string &name) { | ||
| 363 | } | ||
| 364 | return rv; | ||
| 365 | } | ||
| 366 | -std::string ToLower(const std::string &name) { | ||
| 367 | + | ||
| 368 | +std::string ToLower(compat::StringView name) { | ||
| 369 | std::string rv = ""; | ||
| 370 | int len = name.length(); | ||
| 371 | for (int i = 0; i < len; i++) { | ||
| 372 | @@ -155,7 +157,8 @@ std::string ToLower(const std::string &name) { | ||
| 373 | } | ||
| 374 | return rv; | ||
| 375 | } | ||
| 376 | -std::string ToCamel(const std::string &name) { | ||
| 377 | + | ||
| 378 | +std::string ToCamel(compat::StringView name) { | ||
| 379 | std::string rv = ""; | ||
| 380 | int len = name.length(); | ||
| 381 | bool next_is_upper = true; | ||
| 382 | @@ -172,7 +175,7 @@ std::string ToCamel(const std::string &name) { | ||
| 383 | return rv; | ||
| 384 | } | ||
| 385 | |||
| 386 | -std::string OverrideFullName(const std::string &full_name, const google::protobuf::FileDescriptor* file) { | ||
| 387 | +std::string OverrideFullName(compat::StringView full_name, const google::protobuf::FileDescriptor* file) { | ||
| 388 | const ProtobufCFileOptions opt = file->options().GetExtension(pb_c_file); | ||
| 389 | if (!opt.has_c_package()) | ||
| 390 | return full_name; | ||
| 391 | @@ -184,7 +187,7 @@ std::string OverrideFullName(const std::string &full_name, const google::protobu | ||
| 392 | return new_name + full_name.substr(file->package().length()); | ||
| 393 | } | ||
| 394 | |||
| 395 | -std::string FullNameToLower(const std::string &full_name, const google::protobuf::FileDescriptor* file) { | ||
| 396 | +std::string FullNameToLower(compat::StringView full_name, const google::protobuf::FileDescriptor* file) { | ||
| 397 | std::vector<std::string> pieces; | ||
| 398 | SplitStringUsing(OverrideFullName(full_name, file), ".", &pieces); | ||
| 399 | std::string rv = ""; | ||
| 400 | @@ -195,7 +198,8 @@ std::string FullNameToLower(const std::string &full_name, const google::protobuf | ||
| 401 | } | ||
| 402 | return rv; | ||
| 403 | } | ||
| 404 | -std::string FullNameToUpper(const std::string &full_name, const google::protobuf::FileDescriptor* file) { | ||
| 405 | + | ||
| 406 | +std::string FullNameToUpper(compat::StringView full_name, const google::protobuf::FileDescriptor* file) { | ||
| 407 | std::vector<std::string> pieces; | ||
| 408 | SplitStringUsing(OverrideFullName(full_name, file), ".", &pieces); | ||
| 409 | std::string rv = ""; | ||
| 410 | @@ -206,7 +210,8 @@ std::string FullNameToUpper(const std::string &full_name, const google::protobuf | ||
| 411 | } | ||
| 412 | return rv; | ||
| 413 | } | ||
| 414 | -std::string FullNameToC(const std::string &full_name, const google::protobuf::FileDescriptor* file) { | ||
| 415 | + | ||
| 416 | +std::string FullNameToC(compat::StringView full_name, const google::protobuf::FileDescriptor* file) { | ||
| 417 | std::vector<std::string> pieces; | ||
| 418 | SplitStringUsing(OverrideFullName(full_name, file), ".", &pieces); | ||
| 419 | std::string rv = ""; | ||
| 420 | @@ -248,7 +253,7 @@ void PrintComment(google::protobuf::io::Printer* printer, std::string comment) | ||
| 421 | } | ||
| 422 | } | ||
| 423 | |||
| 424 | -std::string ConvertToSpaces(const std::string &input) { | ||
| 425 | +std::string ConvertToSpaces(compat::StringView input) { | ||
| 426 | return std::string(input.size(), ' '); | ||
| 427 | } | ||
| 428 | |||
| 429 | @@ -259,8 +264,7 @@ int compare_name_indices_by_name(const void *a, const void *b) | ||
| 430 | return strcmp (ni_a->name, ni_b->name); | ||
| 431 | } | ||
| 432 | |||
| 433 | - | ||
| 434 | -std::string CEscape(const std::string& src); | ||
| 435 | +std::string CEscape(compat::StringView src); | ||
| 436 | |||
| 437 | const char* const kKeywordList[] = { | ||
| 438 | "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break", "case", | ||
| 439 | @@ -300,7 +304,7 @@ std::string FieldDeprecated(const google::protobuf::FieldDescriptor* field) { | ||
| 440 | return ""; | ||
| 441 | } | ||
| 442 | |||
| 443 | -std::string StripProto(const std::string& filename) { | ||
| 444 | +std::string StripProto(compat::StringView filename) { | ||
| 445 | if (HasSuffixString(filename, ".protodevel")) { | ||
| 446 | return StripSuffixString(filename, ".protodevel"); | ||
| 447 | } else { | ||
| 448 | @@ -309,7 +313,7 @@ std::string StripProto(const std::string& filename) { | ||
| 449 | } | ||
| 450 | |||
| 451 | // Convert a file name into a valid identifier. | ||
| 452 | -std::string FilenameIdentifier(const std::string& filename) { | ||
| 453 | +std::string FilenameIdentifier(compat::StringView filename) { | ||
| 454 | std::string result; | ||
| 455 | for (unsigned i = 0; i < filename.size(); i++) { | ||
| 456 | if (isalnum(filename[i])) { | ||
| 457 | @@ -335,7 +339,7 @@ std::string GetLabelName(google::protobuf::FieldDescriptor::Label label) { | ||
| 458 | } | ||
| 459 | |||
| 460 | unsigned | ||
| 461 | -WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *values, const std::string &name) | ||
| 462 | +WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *values, compat::StringView name) | ||
| 463 | { | ||
| 464 | std::map<std::string, std::string> vars; | ||
| 465 | vars["name"] = name; | ||
| 466 | @@ -389,7 +393,7 @@ WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int * | ||
| 467 | // ---------------------------------------------------------------------- | ||
| 468 | template <typename ITR> | ||
| 469 | static inline | ||
| 470 | -void SplitStringToIteratorUsing(const std::string& full, | ||
| 471 | +void SplitStringToIteratorUsing(compat::StringView full, | ||
| 472 | const char* delim, | ||
| 473 | ITR& result) { | ||
| 474 | // Optimize the common case where delim is a single character. | ||
| 475 | @@ -422,7 +426,7 @@ void SplitStringToIteratorUsing(const std::string& full, | ||
| 476 | } | ||
| 477 | } | ||
| 478 | |||
| 479 | -void SplitStringUsing(const std::string& full, | ||
| 480 | +void SplitStringUsing(compat::StringView full, | ||
| 481 | const char* delim, | ||
| 482 | std::vector<std::string>* result) { | ||
| 483 | std::back_insert_iterator< std::vector<std::string> > it(*result); | ||
| 484 | @@ -435,7 +439,6 @@ char* FastHexToBuffer(int i, char* buffer) | ||
| 485 | return buffer; | ||
| 486 | } | ||
| 487 | |||
| 488 | - | ||
| 489 | static int CEscapeInternal(const char* src, int src_len, char* dest, | ||
| 490 | int dest_len, bool use_hex) { | ||
| 491 | const char* src_end = src + src_len; | ||
| 492 | @@ -478,7 +481,8 @@ static int CEscapeInternal(const char* src, int src_len, char* dest, | ||
| 493 | dest[used] = '\0'; // doesn't count towards return value though | ||
| 494 | return used; | ||
| 495 | } | ||
| 496 | -std::string CEscape(const std::string& src) { | ||
| 497 | + | ||
| 498 | +std::string CEscape(compat::StringView src) { | ||
| 499 | const int dest_length = src.size() * 4 + 1; // Maximum possible expansion | ||
| 500 | std::unique_ptr<char[]> dest(new char[dest_length]); | ||
| 501 | const int len = CEscapeInternal(src.data(), src.size(), | ||
| 502 | diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h | ||
| 503 | index 377d4272..ccd39ca2 100644 | ||
| 504 | --- a/protoc-gen-c/c_helpers.h | ||
| 505 | +++ b/protoc-gen-c/c_helpers.h | ||
| 506 | @@ -73,6 +73,8 @@ | ||
| 507 | |||
| 508 | #include <protobuf-c/protobuf-c.pb.h> | ||
| 509 | |||
| 510 | +#include "compat.h" | ||
| 511 | + | ||
| 512 | namespace protobuf_c { | ||
| 513 | |||
| 514 | // --- Borrowed from stubs. --- | ||
| 515 | @@ -84,11 +86,10 @@ template <typename T> std::string SimpleItoa(T n) { | ||
| 516 | |||
| 517 | std::string SimpleFtoa(float f); | ||
| 518 | std::string SimpleDtoa(double f); | ||
| 519 | -void SplitStringUsing(const std::string &str, const char *delim, std::vector<std::string> *out); | ||
| 520 | -std::string CEscape(const std::string& src); | ||
| 521 | -std::string StringReplace(const std::string& s, const std::string& oldsub, const std::string& newsub, bool replace_all); | ||
| 522 | -inline bool HasSuffixString(const std::string& str, const std::string& suffix) { return str.size() >= suffix.size() && str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; } | ||
| 523 | -inline std::string StripSuffixString(const std::string& str, const std::string& suffix) { if (HasSuffixString(str, suffix)) { return str.substr(0, str.size() - suffix.size()); } else { return str; } } | ||
| 524 | +void SplitStringUsing(compat::StringView str, const char *delim, std::vector<std::string> *out); | ||
| 525 | +std::string CEscape(compat::StringView src); | ||
| 526 | +inline bool HasSuffixString(compat::StringView str, compat::StringView suffix) { return str.size() >= suffix.size() && str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; } | ||
| 527 | +inline std::string StripSuffixString(compat::StringView str, compat::StringView suffix) { if (HasSuffixString(str, suffix)) { return str.substr(0, str.size() - suffix.size()); } else { return str; } } | ||
| 528 | char* FastHexToBuffer(int i, char* buffer); | ||
| 529 | |||
| 530 | |||
| 531 | @@ -110,31 +111,31 @@ inline const google::protobuf::Descriptor* FieldScope(const google::protobuf::Fi | ||
| 532 | |||
| 533 | // convert a CamelCase class name into an all uppercase affair | ||
| 534 | // with underscores separating words, e.g. MyClass becomes MY_CLASS. | ||
| 535 | -std::string CamelToUpper(const std::string &class_name); | ||
| 536 | -std::string CamelToLower(const std::string &class_name); | ||
| 537 | +std::string CamelToUpper(compat::StringView class_name); | ||
| 538 | +std::string CamelToLower(compat::StringView class_name); | ||
| 539 | |||
| 540 | // lowercased, underscored name to camel case | ||
| 541 | -std::string ToCamel(const std::string &name); | ||
| 542 | +std::string ToCamel(compat::StringView name); | ||
| 543 | |||
| 544 | // lowercase the string | ||
| 545 | -std::string ToLower(const std::string &class_name); | ||
| 546 | -std::string ToUpper(const std::string &class_name); | ||
| 547 | +std::string ToLower(compat::StringView class_name); | ||
| 548 | +std::string ToUpper(compat::StringView class_name); | ||
| 549 | |||
| 550 | // full_name() to lowercase with underscores | ||
| 551 | -std::string FullNameToLower(const std::string &full_name, const google::protobuf::FileDescriptor *file); | ||
| 552 | -std::string FullNameToUpper(const std::string &full_name, const google::protobuf::FileDescriptor *file); | ||
| 553 | +std::string FullNameToLower(compat::StringView full_name, const google::protobuf::FileDescriptor *file); | ||
| 554 | +std::string FullNameToUpper(compat::StringView full_name, const google::protobuf::FileDescriptor *file); | ||
| 555 | |||
| 556 | // full_name() to c-typename (with underscores for packages, otherwise camel case) | ||
| 557 | -std::string FullNameToC(const std::string &class_name, const google::protobuf::FileDescriptor *file); | ||
| 558 | +std::string FullNameToC(compat::StringView class_name, const google::protobuf::FileDescriptor *file); | ||
| 559 | |||
| 560 | // Splits, indents, formats, and prints comment lines | ||
| 561 | void PrintComment(google::protobuf::io::Printer* printer, std::string comment); | ||
| 562 | |||
| 563 | // make a string of spaces as long as input | ||
| 564 | -std::string ConvertToSpaces(const std::string &input); | ||
| 565 | +std::string ConvertToSpaces(compat::StringView input); | ||
| 566 | |||
| 567 | // Strips ".proto" or ".protodevel" from the end of a filename. | ||
| 568 | -std::string StripProto(const std::string& filename); | ||
| 569 | +std::string StripProto(compat::StringView filename); | ||
| 570 | |||
| 571 | // Get the C++ type name for a primitive type (e.g. "double", "::google::protobuf::int32", etc.). | ||
| 572 | // Note: non-built-in type names will be qualified, meaning they will start | ||
| 573 | @@ -148,15 +149,14 @@ const char* PrimitiveTypeName(google::protobuf::FieldDescriptor::CppType type); | ||
| 574 | const char* DeclaredTypeMethodName(google::protobuf::FieldDescriptor::Type type); | ||
| 575 | |||
| 576 | // Convert a file name into a valid identifier. | ||
| 577 | -std::string FilenameIdentifier(const std::string& filename); | ||
| 578 | +std::string FilenameIdentifier(compat::StringView filename); | ||
| 579 | |||
| 580 | // return 'required', 'optional', or 'repeated' | ||
| 581 | std::string GetLabelName(google::protobuf::FieldDescriptor::Label label); | ||
| 582 | |||
| 583 | - | ||
| 584 | // write IntRanges entries for a bunch of sorted values. | ||
| 585 | // returns the number of ranges there are to bsearch. | ||
| 586 | -unsigned WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *values, const std::string &name); | ||
| 587 | +unsigned WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, const int *values, compat::StringView name); | ||
| 588 | |||
| 589 | struct NameIndex | ||
| 590 | { | ||
| 591 | |||
| 592 | From 75f1c32cc429233a3726358c999009f9ea373b45 Mon Sep 17 00:00:00 2001 | ||
| 593 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 594 | Date: Sat, 8 Feb 2025 20:25:43 -0500 | ||
| 595 | Subject: [PATCH 05/11] Convert string views to owned strings where necessary | ||
| 596 | |||
| 597 | --- | ||
| 598 | protoc-gen-c/c_enum.cc | 2 +- | ||
| 599 | protoc-gen-c/c_enum_field.cc | 2 +- | ||
| 600 | protoc-gen-c/c_helpers.cc | 8 ++++---- | ||
| 601 | protoc-gen-c/c_helpers.h | 3 +-- | ||
| 602 | 4 files changed, 7 insertions(+), 8 deletions(-) | ||
| 603 | |||
| 604 | diff --git a/protoc-gen-c/c_enum.cc b/protoc-gen-c/c_enum.cc | ||
| 605 | index 9212ab82..311e4c86 100644 | ||
| 606 | --- a/protoc-gen-c/c_enum.cc | ||
| 607 | +++ b/protoc-gen-c/c_enum.cc | ||
| 608 | @@ -152,7 +152,7 @@ void EnumGenerator::GenerateValueInitializer(google::protobuf::io::Printer *prin | ||
| 609 | descriptor_->file()->options().optimize_for() == | ||
| 610 | google::protobuf::FileOptions_OptimizeMode_CODE_SIZE; | ||
| 611 | vars["enum_value_name"] = vd->name(); | ||
| 612 | - vars["c_enum_value_name"] = FullNameToUpper(descriptor_->full_name(), descriptor_->file()) + "__" + vd->name(); | ||
| 613 | + vars["c_enum_value_name"] = FullNameToUpper(descriptor_->full_name(), descriptor_->file()) + "__" + std::string(vd->name()); | ||
| 614 | vars["value"] = SimpleItoa(vd->number()); | ||
| 615 | if (optimize_code_size) | ||
| 616 | printer->Print(vars, " { NULL, NULL, $value$ }, /* CODE_SIZE */\n"); | ||
| 617 | diff --git a/protoc-gen-c/c_enum_field.cc b/protoc-gen-c/c_enum_field.cc | ||
| 618 | index 0926ae59..c3111f50 100644 | ||
| 619 | --- a/protoc-gen-c/c_enum_field.cc | ||
| 620 | +++ b/protoc-gen-c/c_enum_field.cc | ||
| 621 | @@ -78,7 +78,7 @@ void SetEnumVariables(const google::protobuf::FieldDescriptor* descriptor, | ||
| 622 | (*variables)["type"] = FullNameToC(descriptor->enum_type()->full_name(), descriptor->enum_type()->file()); | ||
| 623 | const google::protobuf::EnumValueDescriptor* default_value = descriptor->default_value_enum(); | ||
| 624 | (*variables)["default"] = FullNameToUpper(default_value->type()->full_name(), default_value->type()->file()) | ||
| 625 | - + "__" + default_value->name(); | ||
| 626 | + + "__" + std::string(default_value->name()); | ||
| 627 | (*variables)["deprecated"] = FieldDeprecated(descriptor); | ||
| 628 | } | ||
| 629 | |||
| 630 | diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc | ||
| 631 | index c759c8c2..1aecef93 100644 | ||
| 632 | --- a/protoc-gen-c/c_helpers.cc | ||
| 633 | +++ b/protoc-gen-c/c_helpers.cc | ||
| 634 | @@ -178,13 +178,13 @@ std::string ToCamel(compat::StringView name) { | ||
| 635 | std::string OverrideFullName(compat::StringView full_name, const google::protobuf::FileDescriptor* file) { | ||
| 636 | const ProtobufCFileOptions opt = file->options().GetExtension(pb_c_file); | ||
| 637 | if (!opt.has_c_package()) | ||
| 638 | - return full_name; | ||
| 639 | + return std::string(full_name); | ||
| 640 | |||
| 641 | std::string new_name = opt.c_package(); | ||
| 642 | if (file->package().empty()) | ||
| 643 | new_name += "."; | ||
| 644 | |||
| 645 | - return new_name + full_name.substr(file->package().length()); | ||
| 646 | + return new_name + std::string(full_name.substr(file->package().length())); | ||
| 647 | } | ||
| 648 | |||
| 649 | std::string FullNameToLower(compat::StringView full_name, const google::protobuf::FileDescriptor* file) { | ||
| 650 | @@ -418,10 +418,10 @@ void SplitStringToIteratorUsing(compat::StringView full, | ||
| 651 | while (begin_index != std::string::npos) { | ||
| 652 | end_index = full.find_first_of(delim, begin_index); | ||
| 653 | if (end_index == std::string::npos) { | ||
| 654 | - *result++ = full.substr(begin_index); | ||
| 655 | + *result++ = std::string(full.substr(begin_index)); | ||
| 656 | return; | ||
| 657 | } | ||
| 658 | - *result++ = full.substr(begin_index, (end_index - begin_index)); | ||
| 659 | + *result++ = std::string(full.substr(begin_index, (end_index - begin_index))); | ||
| 660 | begin_index = full.find_first_not_of(delim, end_index); | ||
| 661 | } | ||
| 662 | } | ||
| 663 | diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h | ||
| 664 | index ccd39ca2..985e4db6 100644 | ||
| 665 | --- a/protoc-gen-c/c_helpers.h | ||
| 666 | +++ b/protoc-gen-c/c_helpers.h | ||
| 667 | @@ -89,10 +89,9 @@ std::string SimpleDtoa(double f); | ||
| 668 | void SplitStringUsing(compat::StringView str, const char *delim, std::vector<std::string> *out); | ||
| 669 | std::string CEscape(compat::StringView src); | ||
| 670 | inline bool HasSuffixString(compat::StringView str, compat::StringView suffix) { return str.size() >= suffix.size() && str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; } | ||
| 671 | -inline std::string StripSuffixString(compat::StringView str, compat::StringView suffix) { if (HasSuffixString(str, suffix)) { return str.substr(0, str.size() - suffix.size()); } else { return str; } } | ||
| 672 | +inline std::string StripSuffixString(compat::StringView str, compat::StringView suffix) { if (HasSuffixString(str, suffix)) { return std::string(str.substr(0, str.size() - suffix.size())); } else { return std::string(str); } } | ||
| 673 | char* FastHexToBuffer(int i, char* buffer); | ||
| 674 | |||
| 675 | - | ||
| 676 | // Get the (unqualified) name that should be used for this field in C code. | ||
| 677 | // The name is coerced to lower-case to emulate proto1 behavior. People | ||
| 678 | // should be using lowercase-with-underscores style for proto field names | ||
| 679 | |||
| 680 | From 0edca93db369fb84f01cc0d4e3ee4cd6c2ad7f4f Mon Sep 17 00:00:00 2001 | ||
| 681 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 682 | Date: Sat, 8 Feb 2025 20:39:11 -0500 | ||
| 683 | Subject: [PATCH 06/11] Convert various uses of `const char *` to | ||
| 684 | `compat::StringView` | ||
| 685 | |||
| 686 | Also replace some uses of arrays manually allocated with new/delete with | ||
| 687 | uses of `std::vector`. | ||
| 688 | --- | ||
| 689 | protoc-gen-c/c_enum.cc | 35 ++++++++++++++++++----------------- | ||
| 690 | protoc-gen-c/c_helpers.cc | 2 +- | ||
| 691 | protoc-gen-c/c_helpers.h | 2 +- | ||
| 692 | protoc-gen-c/c_message.cc | 28 ++++++++++++---------------- | ||
| 693 | protoc-gen-c/c_service.cc | 19 +++++++++---------- | ||
| 694 | 5 files changed, 41 insertions(+), 45 deletions(-) | ||
| 695 | |||
| 696 | diff --git a/protoc-gen-c/c_enum.cc b/protoc-gen-c/c_enum.cc | ||
| 697 | index 311e4c86..c7839edd 100644 | ||
| 698 | --- a/protoc-gen-c/c_enum.cc | ||
| 699 | +++ b/protoc-gen-c/c_enum.cc | ||
| 700 | @@ -142,7 +142,7 @@ struct ValueIndex | ||
| 701 | int value; | ||
| 702 | unsigned index; | ||
| 703 | unsigned final_index; /* index in uniqified array of values */ | ||
| 704 | - const char *name; | ||
| 705 | + compat::StringView name; | ||
| 706 | }; | ||
| 707 | void EnumGenerator::GenerateValueInitializer(google::protobuf::io::Printer *printer, int index) | ||
| 708 | { | ||
| 709 | @@ -176,7 +176,7 @@ static int compare_value_indices_by_name(const void *a, const void *b) | ||
| 710 | { | ||
| 711 | const ValueIndex *vi_a = (const ValueIndex *) a; | ||
| 712 | const ValueIndex *vi_b = (const ValueIndex *) b; | ||
| 713 | - return strcmp (vi_a->name, vi_b->name); | ||
| 714 | + return vi_a->name.compare(vi_b->name); | ||
| 715 | } | ||
| 716 | |||
| 717 | void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printer) { | ||
| 718 | @@ -194,18 +194,20 @@ void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printe | ||
| 719 | |||
| 720 | // Sort by name and value, dropping duplicate values if they appear later. | ||
| 721 | // TODO: use a c++ paradigm for this! | ||
| 722 | - NameIndex *name_index = new NameIndex[descriptor_->value_count()]; | ||
| 723 | - ValueIndex *value_index = new ValueIndex[descriptor_->value_count()]; | ||
| 724 | - for (int j = 0; j < descriptor_->value_count(); j++) { | ||
| 725 | + std::vector<ValueIndex> value_index; | ||
| 726 | + for (unsigned j = 0; j < descriptor_->value_count(); j++) { | ||
| 727 | const google::protobuf::EnumValueDescriptor *vd = descriptor_->value(j); | ||
| 728 | - name_index[j].index = j; | ||
| 729 | - name_index[j].name = vd->name().c_str(); | ||
| 730 | - value_index[j].index = j; | ||
| 731 | - value_index[j].value = vd->number(); | ||
| 732 | - value_index[j].name = vd->name().c_str(); | ||
| 733 | + value_index.push_back({ | ||
| 734 | + .value = vd->number(), | ||
| 735 | + .index = j, | ||
| 736 | + .final_index = 0, | ||
| 737 | + .name = vd->name(), | ||
| 738 | + }); | ||
| 739 | } | ||
| 740 | - qsort(value_index, descriptor_->value_count(), | ||
| 741 | - sizeof(ValueIndex), compare_value_indices_by_value_then_index); | ||
| 742 | + qsort(&value_index[0], | ||
| 743 | + value_index.size(), | ||
| 744 | + sizeof(ValueIndex), | ||
| 745 | + compare_value_indices_by_value_then_index); | ||
| 746 | |||
| 747 | // only record unique values | ||
| 748 | int n_unique_values; | ||
| 749 | @@ -275,8 +277,10 @@ void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printe | ||
| 750 | vars["n_ranges"] = SimpleItoa(n_ranges); | ||
| 751 | |||
| 752 | if (!optimize_code_size) { | ||
| 753 | - qsort(value_index, descriptor_->value_count(), | ||
| 754 | - sizeof(ValueIndex), compare_value_indices_by_name); | ||
| 755 | + qsort(&value_index[0], | ||
| 756 | + value_index.size(), | ||
| 757 | + sizeof(ValueIndex), | ||
| 758 | + compare_value_indices_by_name); | ||
| 759 | printer->Print(vars, | ||
| 760 | "static const ProtobufCEnumValueIndex $lcclassname$__enum_values_by_name[$value_count$] =\n" | ||
| 761 | "{\n"); | ||
| 762 | @@ -319,9 +323,6 @@ void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printe | ||
| 763 | " NULL,NULL,NULL,NULL /* reserved[1234] */\n" | ||
| 764 | "};\n"); | ||
| 765 | } | ||
| 766 | - | ||
| 767 | - delete[] value_index; | ||
| 768 | - delete[] name_index; | ||
| 769 | } | ||
| 770 | |||
| 771 | } // namespace protobuf_c | ||
| 772 | diff --git a/protoc-gen-c/c_helpers.cc b/protoc-gen-c/c_helpers.cc | ||
| 773 | index 1aecef93..dec9ce28 100644 | ||
| 774 | --- a/protoc-gen-c/c_helpers.cc | ||
| 775 | +++ b/protoc-gen-c/c_helpers.cc | ||
| 776 | @@ -261,7 +261,7 @@ int compare_name_indices_by_name(const void *a, const void *b) | ||
| 777 | { | ||
| 778 | const NameIndex *ni_a = (const NameIndex *) a; | ||
| 779 | const NameIndex *ni_b = (const NameIndex *) b; | ||
| 780 | - return strcmp (ni_a->name, ni_b->name); | ||
| 781 | + return ni_a->name.compare(ni_b->name); | ||
| 782 | } | ||
| 783 | |||
| 784 | std::string CEscape(compat::StringView src); | ||
| 785 | diff --git a/protoc-gen-c/c_helpers.h b/protoc-gen-c/c_helpers.h | ||
| 786 | index 985e4db6..69369997 100644 | ||
| 787 | --- a/protoc-gen-c/c_helpers.h | ||
| 788 | +++ b/protoc-gen-c/c_helpers.h | ||
| 789 | @@ -160,7 +160,7 @@ unsigned WriteIntRanges(google::protobuf::io::Printer* printer, int n_values, co | ||
| 790 | struct NameIndex | ||
| 791 | { | ||
| 792 | unsigned index; | ||
| 793 | - const char *name; | ||
| 794 | + compat::StringView name; | ||
| 795 | }; | ||
| 796 | int compare_name_indices_by_name(const void*, const void*); | ||
| 797 | |||
| 798 | diff --git a/protoc-gen-c/c_message.cc b/protoc-gen-c/c_message.cc | ||
| 799 | index 46413873..7252923c 100644 | ||
| 800 | --- a/protoc-gen-c/c_message.cc | ||
| 801 | +++ b/protoc-gen-c/c_message.cc | ||
| 802 | @@ -567,27 +567,26 @@ GenerateMessageDescriptor(google::protobuf::io::Printer* printer, bool gen_init) | ||
| 803 | "static const ProtobufCFieldDescriptor $lcclassname$__field_descriptors[$n_fields$] =\n" | ||
| 804 | "{\n"); | ||
| 805 | printer->Indent(); | ||
| 806 | - const google::protobuf::FieldDescriptor **sorted_fields = new const google::protobuf::FieldDescriptor *[descriptor_->field_count()]; | ||
| 807 | + | ||
| 808 | + std::vector<const google::protobuf::FieldDescriptor*> sorted_fields; | ||
| 809 | for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 810 | - sorted_fields[i] = descriptor_->field(i); | ||
| 811 | + sorted_fields.push_back(descriptor_->field(i)); | ||
| 812 | } | ||
| 813 | - qsort (sorted_fields, descriptor_->field_count(), | ||
| 814 | + qsort(&sorted_fields[0], sorted_fields.size(), | ||
| 815 | sizeof(const google::protobuf::FieldDescriptor*), | ||
| 816 | compare_pfields_by_number); | ||
| 817 | - for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 818 | - const google::protobuf::FieldDescriptor* field = sorted_fields[i]; | ||
| 819 | + for (auto field : sorted_fields) { | ||
| 820 | field_generators_.get(field).GenerateDescriptorInitializer(printer); | ||
| 821 | } | ||
| 822 | printer->Outdent(); | ||
| 823 | printer->Print(vars, "};\n"); | ||
| 824 | |||
| 825 | if (!optimize_code_size) { | ||
| 826 | - NameIndex *field_indices = new NameIndex [descriptor_->field_count()]; | ||
| 827 | - for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 828 | - field_indices[i].name = sorted_fields[i]->name().c_str(); | ||
| 829 | - field_indices[i].index = i; | ||
| 830 | + std::vector<NameIndex> field_indices; | ||
| 831 | + for (unsigned i = 0; i < descriptor_->field_count(); i++) { | ||
| 832 | + field_indices.push_back({ .index = i, .name = sorted_fields[i]->name() }); | ||
| 833 | } | ||
| 834 | - qsort (field_indices, descriptor_->field_count(), sizeof (NameIndex), | ||
| 835 | + qsort(&field_indices[0], field_indices.size(), sizeof(NameIndex), | ||
| 836 | compare_name_indices_by_name); | ||
| 837 | printer->Print(vars, "static const unsigned $lcclassname$__field_indices_by_name[] = {\n"); | ||
| 838 | for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 839 | @@ -596,19 +595,16 @@ GenerateMessageDescriptor(google::protobuf::io::Printer* printer, bool gen_init) | ||
| 840 | printer->Print(vars, " $index$, /* field[$index$] = $name$ */\n"); | ||
| 841 | } | ||
| 842 | printer->Print("};\n"); | ||
| 843 | - delete[] field_indices; | ||
| 844 | } | ||
| 845 | |||
| 846 | // create range initializers | ||
| 847 | - int *values = new int[descriptor_->field_count()]; | ||
| 848 | + std::vector<int> values; | ||
| 849 | for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 850 | - values[i] = sorted_fields[i]->number(); | ||
| 851 | + values.push_back(sorted_fields[i]->number()); | ||
| 852 | } | ||
| 853 | int n_ranges = WriteIntRanges(printer, | ||
| 854 | - descriptor_->field_count(), values, | ||
| 855 | + descriptor_->field_count(), &values[0], | ||
| 856 | vars["lcclassname"] + "__number_ranges"); | ||
| 857 | - delete [] values; | ||
| 858 | - delete [] sorted_fields; | ||
| 859 | |||
| 860 | vars["n_ranges"] = SimpleItoa(n_ranges); | ||
| 861 | } else { | ||
| 862 | diff --git a/protoc-gen-c/c_service.cc b/protoc-gen-c/c_service.cc | ||
| 863 | index ee4d4a95..2c3ddcf3 100644 | ||
| 864 | --- a/protoc-gen-c/c_service.cc | ||
| 865 | +++ b/protoc-gen-c/c_service.cc | ||
| 866 | @@ -184,19 +184,19 @@ void ServiceGenerator::GenerateInit(google::protobuf::io::Printer* printer) | ||
| 867 | "}\n"); | ||
| 868 | } | ||
| 869 | |||
| 870 | -struct MethodIndexAndName { unsigned i; const char *name; }; | ||
| 871 | +struct MethodIndexAndName { unsigned i; compat::StringView name; }; | ||
| 872 | static int | ||
| 873 | compare_method_index_and_name_by_name (const void *a, const void *b) | ||
| 874 | { | ||
| 875 | const MethodIndexAndName *ma = (const MethodIndexAndName *) a; | ||
| 876 | const MethodIndexAndName *mb = (const MethodIndexAndName *) b; | ||
| 877 | - return strcmp (ma->name, mb->name); | ||
| 878 | + return ma->name.compare(mb->name); | ||
| 879 | } | ||
| 880 | |||
| 881 | void ServiceGenerator::GenerateServiceDescriptor(google::protobuf::io::Printer* printer) | ||
| 882 | { | ||
| 883 | int n_methods = descriptor_->method_count(); | ||
| 884 | - MethodIndexAndName *mi_array = new MethodIndexAndName[n_methods]; | ||
| 885 | + std::vector<MethodIndexAndName> mi_array; | ||
| 886 | |||
| 887 | bool optimize_code_size = descriptor_->file()->options().has_optimize_for() && | ||
| 888 | descriptor_->file()->options().optimize_for() == | ||
| 889 | @@ -205,7 +205,7 @@ void ServiceGenerator::GenerateServiceDescriptor(google::protobuf::io::Printer* | ||
| 890 | vars_["n_methods"] = SimpleItoa(n_methods); | ||
| 891 | printer->Print(vars_, "static const ProtobufCMethodDescriptor $lcfullname$__method_descriptors[$n_methods$] =\n" | ||
| 892 | "{\n"); | ||
| 893 | - for (int i = 0; i < n_methods; i++) { | ||
| 894 | + for (unsigned i = 0; i < n_methods; i++) { | ||
| 895 | const google::protobuf::MethodDescriptor* method = descriptor_->method(i); | ||
| 896 | vars_["method"] = method->name(); | ||
| 897 | vars_["input_descriptor"] = "&" + FullNameToLower(method->input_type()->full_name(), method->input_type()->file()) + "__descriptor"; | ||
| 898 | @@ -217,14 +217,15 @@ void ServiceGenerator::GenerateServiceDescriptor(google::protobuf::io::Printer* | ||
| 899 | printer->Print(vars_, | ||
| 900 | " { \"$method$\", $input_descriptor$, $output_descriptor$ },\n"); | ||
| 901 | } | ||
| 902 | - mi_array[i].i = i; | ||
| 903 | - mi_array[i].name = method->name().c_str(); | ||
| 904 | + mi_array.push_back({i, method->name()}); | ||
| 905 | } | ||
| 906 | printer->Print(vars_, "};\n"); | ||
| 907 | |||
| 908 | if (!optimize_code_size) { | ||
| 909 | - qsort ((void*)mi_array, n_methods, sizeof (MethodIndexAndName), | ||
| 910 | - compare_method_index_and_name_by_name); | ||
| 911 | + qsort(&mi_array[0], | ||
| 912 | + mi_array.size(), | ||
| 913 | + sizeof(MethodIndexAndName), | ||
| 914 | + compare_method_index_and_name_by_name); | ||
| 915 | printer->Print(vars_, "const unsigned $lcfullname$__method_indices_by_name[] = {\n"); | ||
| 916 | for (int i = 0; i < n_methods; i++) { | ||
| 917 | vars_["i"] = SimpleItoa(mi_array[i].i); | ||
| 918 | @@ -258,8 +259,6 @@ void ServiceGenerator::GenerateServiceDescriptor(google::protobuf::io::Printer* | ||
| 919 | " $lcfullname$__method_indices_by_name\n" | ||
| 920 | "};\n"); | ||
| 921 | } | ||
| 922 | - | ||
| 923 | - delete[] mi_array; | ||
| 924 | } | ||
| 925 | |||
| 926 | void ServiceGenerator::GenerateCallersImplementations(google::protobuf::io::Printer* printer) | ||
| 927 | |||
| 928 | From ebeddac1a746393a16d9ba4cf80e3d12c3ab7d7f Mon Sep 17 00:00:00 2001 | ||
| 929 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 930 | Date: Sat, 8 Feb 2025 20:56:48 -0500 | ||
| 931 | Subject: [PATCH 07/11] Fix indentation of | ||
| 932 | MessageGenerator::GenerateMessageDescriptor() | ||
| 933 | |||
| 934 | --- | ||
| 935 | protoc-gen-c/c_message.cc | 321 +++++++++++++++++++------------------- | ||
| 936 | 1 file changed, 159 insertions(+), 162 deletions(-) | ||
| 937 | |||
| 938 | diff --git a/protoc-gen-c/c_message.cc b/protoc-gen-c/c_message.cc | ||
| 939 | index 7252923c..2a3b2a2f 100644 | ||
| 940 | --- a/protoc-gen-c/c_message.cc | ||
| 941 | +++ b/protoc-gen-c/c_message.cc | ||
| 942 | @@ -461,199 +461,196 @@ GenerateHelperFunctionDefinitions(google::protobuf::io::Printer* printer, | ||
| 943 | |||
| 944 | void MessageGenerator:: | ||
| 945 | GenerateMessageDescriptor(google::protobuf::io::Printer* printer, bool gen_init) { | ||
| 946 | - std::map<std::string, std::string> vars; | ||
| 947 | - vars["fullname"] = descriptor_->full_name(); | ||
| 948 | - vars["classname"] = FullNameToC(descriptor_->full_name(), descriptor_->file()); | ||
| 949 | - vars["lcclassname"] = FullNameToLower(descriptor_->full_name(), descriptor_->file()); | ||
| 950 | - vars["shortname"] = ToCamel(descriptor_->name()); | ||
| 951 | - vars["n_fields"] = SimpleItoa(descriptor_->field_count()); | ||
| 952 | - vars["packagename"] = descriptor_->file()->package(); | ||
| 953 | - | ||
| 954 | - bool optimize_code_size = descriptor_->file()->options().has_optimize_for() && | ||
| 955 | - descriptor_->file()->options().optimize_for() == | ||
| 956 | - google::protobuf::FileOptions_OptimizeMode_CODE_SIZE; | ||
| 957 | - | ||
| 958 | - const ProtobufCMessageOptions opt = | ||
| 959 | - descriptor_->options().GetExtension(pb_c_msg); | ||
| 960 | - // Override parent settings, if needed | ||
| 961 | - if (opt.has_gen_init_helpers()) | ||
| 962 | - gen_init = opt.gen_init_helpers(); | ||
| 963 | - | ||
| 964 | - for (int i = 0; i < descriptor_->nested_type_count(); i++) { | ||
| 965 | - nested_generators_[i]->GenerateMessageDescriptor(printer, gen_init); | ||
| 966 | - } | ||
| 967 | + std::map<std::string, std::string> vars; | ||
| 968 | + vars["fullname"] = descriptor_->full_name(); | ||
| 969 | + vars["classname"] = FullNameToC(descriptor_->full_name(), descriptor_->file()); | ||
| 970 | + vars["lcclassname"] = FullNameToLower(descriptor_->full_name(), descriptor_->file()); | ||
| 971 | + vars["shortname"] = ToCamel(descriptor_->name()); | ||
| 972 | + vars["n_fields"] = SimpleItoa(descriptor_->field_count()); | ||
| 973 | + vars["packagename"] = descriptor_->file()->package(); | ||
| 974 | |||
| 975 | - for (int i = 0; i < descriptor_->enum_type_count(); i++) { | ||
| 976 | - enum_generators_[i]->GenerateEnumDescriptor(printer); | ||
| 977 | - } | ||
| 978 | + bool optimize_code_size = descriptor_->file()->options().has_optimize_for() && | ||
| 979 | + descriptor_->file()->options().optimize_for() == | ||
| 980 | + google::protobuf::FileOptions_OptimizeMode_CODE_SIZE; | ||
| 981 | |||
| 982 | - for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 983 | - const google::protobuf::FieldDescriptor* fd = descriptor_->field(i); | ||
| 984 | - if (fd->has_default_value()) { | ||
| 985 | - field_generators_.get(fd).GenerateDefaultValueImplementations(printer); | ||
| 986 | - } | ||
| 987 | - } | ||
| 988 | + const ProtobufCMessageOptions opt = descriptor_->options().GetExtension(pb_c_msg); | ||
| 989 | + // Override parent settings, if needed | ||
| 990 | + if (opt.has_gen_init_helpers()) { | ||
| 991 | + gen_init = opt.gen_init_helpers(); | ||
| 992 | + } | ||
| 993 | |||
| 994 | - for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 995 | - const google::protobuf::FieldDescriptor* fd = descriptor_->field(i); | ||
| 996 | - const ProtobufCFieldOptions opt = fd->options().GetExtension(pb_c_field); | ||
| 997 | - if (fd->has_default_value()) { | ||
| 998 | - | ||
| 999 | - bool already_defined = false; | ||
| 1000 | - vars["name"] = fd->name(); | ||
| 1001 | - vars["lcname"] = CamelToLower(fd->name()); | ||
| 1002 | - vars["maybe_static"] = "static "; | ||
| 1003 | - vars["field_dv_ctype_suffix"] = ""; | ||
| 1004 | - vars["default_value"] = field_generators_.get(fd).GetDefaultValue(); | ||
| 1005 | - switch (fd->cpp_type()) { | ||
| 1006 | - case google::protobuf::FieldDescriptor::CPPTYPE_INT32: | ||
| 1007 | - vars["field_dv_ctype"] = "int32_t"; | ||
| 1008 | - break; | ||
| 1009 | - case google::protobuf::FieldDescriptor::CPPTYPE_INT64: | ||
| 1010 | - vars["field_dv_ctype"] = "int64_t"; | ||
| 1011 | - break; | ||
| 1012 | - case google::protobuf::FieldDescriptor::CPPTYPE_UINT32: | ||
| 1013 | - vars["field_dv_ctype"] = "uint32_t"; | ||
| 1014 | - break; | ||
| 1015 | - case google::protobuf::FieldDescriptor::CPPTYPE_UINT64: | ||
| 1016 | - vars["field_dv_ctype"] = "uint64_t"; | ||
| 1017 | - break; | ||
| 1018 | - case google::protobuf::FieldDescriptor::CPPTYPE_FLOAT: | ||
| 1019 | - vars["field_dv_ctype"] = "float"; | ||
| 1020 | - break; | ||
| 1021 | - case google::protobuf::FieldDescriptor::CPPTYPE_DOUBLE: | ||
| 1022 | - vars["field_dv_ctype"] = "double"; | ||
| 1023 | - break; | ||
| 1024 | - case google::protobuf::FieldDescriptor::CPPTYPE_BOOL: | ||
| 1025 | - vars["field_dv_ctype"] = "protobuf_c_boolean"; | ||
| 1026 | - break; | ||
| 1027 | - | ||
| 1028 | - case google::protobuf::FieldDescriptor::CPPTYPE_MESSAGE: | ||
| 1029 | - // NOTE: not supported by protobuf | ||
| 1030 | - vars["maybe_static"] = ""; | ||
| 1031 | - vars["field_dv_ctype"] = "{ ... }"; | ||
| 1032 | - GOOGLE_LOG(FATAL) << "Messages can't have default values!"; | ||
| 1033 | - break; | ||
| 1034 | - case google::protobuf::FieldDescriptor::CPPTYPE_STRING: | ||
| 1035 | - if (fd->type() == google::protobuf::FieldDescriptor::TYPE_BYTES || opt.string_as_bytes()) | ||
| 1036 | - { | ||
| 1037 | - vars["field_dv_ctype"] = "ProtobufCBinaryData"; | ||
| 1038 | - } | ||
| 1039 | - else /* STRING type */ | ||
| 1040 | - { | ||
| 1041 | - already_defined = true; | ||
| 1042 | - vars["maybe_static"] = ""; | ||
| 1043 | - vars["field_dv_ctype"] = "char"; | ||
| 1044 | - vars["field_dv_ctype_suffix"] = "[]"; | ||
| 1045 | - } | ||
| 1046 | - break; | ||
| 1047 | - case google::protobuf::FieldDescriptor::CPPTYPE_ENUM: | ||
| 1048 | - { | ||
| 1049 | - const google::protobuf::EnumValueDescriptor* vd = fd->default_value_enum(); | ||
| 1050 | - vars["field_dv_ctype"] = FullNameToC(vd->type()->full_name(), vd->type()->file()); | ||
| 1051 | - break; | ||
| 1052 | - } | ||
| 1053 | - default: | ||
| 1054 | - GOOGLE_LOG(FATAL) << "Unknown CPPTYPE"; | ||
| 1055 | - break; | ||
| 1056 | - } | ||
| 1057 | - if (!already_defined) | ||
| 1058 | - printer->Print(vars, "$maybe_static$const $field_dv_ctype$ $lcclassname$__$lcname$__default_value$field_dv_ctype_suffix$ = $default_value$;\n"); | ||
| 1059 | - } | ||
| 1060 | - } | ||
| 1061 | + for (int i = 0; i < descriptor_->nested_type_count(); i++) { | ||
| 1062 | + nested_generators_[i]->GenerateMessageDescriptor(printer, gen_init); | ||
| 1063 | + } | ||
| 1064 | |||
| 1065 | - if ( descriptor_->field_count() ) { | ||
| 1066 | - printer->Print(vars, | ||
| 1067 | - "static const ProtobufCFieldDescriptor $lcclassname$__field_descriptors[$n_fields$] =\n" | ||
| 1068 | - "{\n"); | ||
| 1069 | - printer->Indent(); | ||
| 1070 | + for (int i = 0; i < descriptor_->enum_type_count(); i++) { | ||
| 1071 | + enum_generators_[i]->GenerateEnumDescriptor(printer); | ||
| 1072 | + } | ||
| 1073 | |||
| 1074 | - std::vector<const google::protobuf::FieldDescriptor*> sorted_fields; | ||
| 1075 | for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 1076 | - sorted_fields.push_back(descriptor_->field(i)); | ||
| 1077 | - } | ||
| 1078 | - qsort(&sorted_fields[0], sorted_fields.size(), | ||
| 1079 | - sizeof(const google::protobuf::FieldDescriptor*), | ||
| 1080 | - compare_pfields_by_number); | ||
| 1081 | - for (auto field : sorted_fields) { | ||
| 1082 | - field_generators_.get(field).GenerateDescriptorInitializer(printer); | ||
| 1083 | + const google::protobuf::FieldDescriptor* fd = descriptor_->field(i); | ||
| 1084 | + if (fd->has_default_value()) { | ||
| 1085 | + field_generators_.get(fd).GenerateDefaultValueImplementations(printer); | ||
| 1086 | + } | ||
| 1087 | } | ||
| 1088 | - printer->Outdent(); | ||
| 1089 | - printer->Print(vars, "};\n"); | ||
| 1090 | |||
| 1091 | - if (!optimize_code_size) { | ||
| 1092 | - std::vector<NameIndex> field_indices; | ||
| 1093 | - for (unsigned i = 0; i < descriptor_->field_count(); i++) { | ||
| 1094 | - field_indices.push_back({ .index = i, .name = sorted_fields[i]->name() }); | ||
| 1095 | + for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 1096 | + const google::protobuf::FieldDescriptor* fd = descriptor_->field(i); | ||
| 1097 | + const ProtobufCFieldOptions opt = fd->options().GetExtension(pb_c_field); | ||
| 1098 | + if (fd->has_default_value()) { | ||
| 1099 | + bool already_defined = false; | ||
| 1100 | + vars["name"] = fd->name(); | ||
| 1101 | + vars["lcname"] = CamelToLower(fd->name()); | ||
| 1102 | + vars["maybe_static"] = "static "; | ||
| 1103 | + vars["field_dv_ctype_suffix"] = ""; | ||
| 1104 | + vars["default_value"] = field_generators_.get(fd).GetDefaultValue(); | ||
| 1105 | + switch (fd->cpp_type()) { | ||
| 1106 | + case google::protobuf::FieldDescriptor::CPPTYPE_INT32: | ||
| 1107 | + vars["field_dv_ctype"] = "int32_t"; | ||
| 1108 | + break; | ||
| 1109 | + case google::protobuf::FieldDescriptor::CPPTYPE_INT64: | ||
| 1110 | + vars["field_dv_ctype"] = "int64_t"; | ||
| 1111 | + break; | ||
| 1112 | + case google::protobuf::FieldDescriptor::CPPTYPE_UINT32: | ||
| 1113 | + vars["field_dv_ctype"] = "uint32_t"; | ||
| 1114 | + break; | ||
| 1115 | + case google::protobuf::FieldDescriptor::CPPTYPE_UINT64: | ||
| 1116 | + vars["field_dv_ctype"] = "uint64_t"; | ||
| 1117 | + break; | ||
| 1118 | + case google::protobuf::FieldDescriptor::CPPTYPE_FLOAT: | ||
| 1119 | + vars["field_dv_ctype"] = "float"; | ||
| 1120 | + break; | ||
| 1121 | + case google::protobuf::FieldDescriptor::CPPTYPE_DOUBLE: | ||
| 1122 | + vars["field_dv_ctype"] = "double"; | ||
| 1123 | + break; | ||
| 1124 | + case google::protobuf::FieldDescriptor::CPPTYPE_BOOL: | ||
| 1125 | + vars["field_dv_ctype"] = "protobuf_c_boolean"; | ||
| 1126 | + break; | ||
| 1127 | + case google::protobuf::FieldDescriptor::CPPTYPE_MESSAGE: | ||
| 1128 | + // NOTE: not supported by protobuf | ||
| 1129 | + vars["maybe_static"] = ""; | ||
| 1130 | + vars["field_dv_ctype"] = "{ ... }"; | ||
| 1131 | + GOOGLE_LOG(FATAL) << "Messages can't have default values!"; | ||
| 1132 | + break; | ||
| 1133 | + case google::protobuf::FieldDescriptor::CPPTYPE_STRING: | ||
| 1134 | + if (fd->type() == google::protobuf::FieldDescriptor::TYPE_BYTES || opt.string_as_bytes()) { | ||
| 1135 | + vars["field_dv_ctype"] = "ProtobufCBinaryData"; | ||
| 1136 | + } else { | ||
| 1137 | + /* STRING type */ | ||
| 1138 | + already_defined = true; | ||
| 1139 | + vars["maybe_static"] = ""; | ||
| 1140 | + vars["field_dv_ctype"] = "char"; | ||
| 1141 | + vars["field_dv_ctype_suffix"] = "[]"; | ||
| 1142 | + } | ||
| 1143 | + break; | ||
| 1144 | + case google::protobuf::FieldDescriptor::CPPTYPE_ENUM: { | ||
| 1145 | + const google::protobuf::EnumValueDescriptor* vd = fd->default_value_enum(); | ||
| 1146 | + vars["field_dv_ctype"] = FullNameToC(vd->type()->full_name(), vd->type()->file()); | ||
| 1147 | + break; | ||
| 1148 | + } | ||
| 1149 | + default: | ||
| 1150 | + GOOGLE_LOG(FATAL) << "Unknown CPPTYPE"; | ||
| 1151 | + break; | ||
| 1152 | + } | ||
| 1153 | + if (!already_defined) { | ||
| 1154 | + printer->Print(vars, "$maybe_static$const $field_dv_ctype$ $lcclassname$__$lcname$__default_value$field_dv_ctype_suffix$ = $default_value$;\n"); | ||
| 1155 | + } | ||
| 1156 | } | ||
| 1157 | - qsort(&field_indices[0], field_indices.size(), sizeof(NameIndex), | ||
| 1158 | - compare_name_indices_by_name); | ||
| 1159 | - printer->Print(vars, "static const unsigned $lcclassname$__field_indices_by_name[] = {\n"); | ||
| 1160 | + } | ||
| 1161 | + | ||
| 1162 | + if (descriptor_->field_count()) { | ||
| 1163 | + printer->Print(vars, | ||
| 1164 | + "static const ProtobufCFieldDescriptor $lcclassname$__field_descriptors[$n_fields$] =\n" | ||
| 1165 | + "{\n"); | ||
| 1166 | + printer->Indent(); | ||
| 1167 | + | ||
| 1168 | + std::vector<const google::protobuf::FieldDescriptor*> sorted_fields; | ||
| 1169 | for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 1170 | - vars["index"] = SimpleItoa(field_indices[i].index); | ||
| 1171 | - vars["name"] = field_indices[i].name; | ||
| 1172 | - printer->Print(vars, " $index$, /* field[$index$] = $name$ */\n"); | ||
| 1173 | + sorted_fields.push_back(descriptor_->field(i)); | ||
| 1174 | } | ||
| 1175 | - printer->Print("};\n"); | ||
| 1176 | - } | ||
| 1177 | + qsort(&sorted_fields[0], | ||
| 1178 | + sorted_fields.size(), | ||
| 1179 | + sizeof(const google::protobuf::FieldDescriptor*), | ||
| 1180 | + compare_pfields_by_number); | ||
| 1181 | + for (auto field : sorted_fields) { | ||
| 1182 | + field_generators_.get(field).GenerateDescriptorInitializer(printer); | ||
| 1183 | + } | ||
| 1184 | + printer->Outdent(); | ||
| 1185 | + printer->Print(vars, "};\n"); | ||
| 1186 | |||
| 1187 | - // create range initializers | ||
| 1188 | - std::vector<int> values; | ||
| 1189 | - for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 1190 | - values.push_back(sorted_fields[i]->number()); | ||
| 1191 | - } | ||
| 1192 | - int n_ranges = WriteIntRanges(printer, | ||
| 1193 | - descriptor_->field_count(), &values[0], | ||
| 1194 | - vars["lcclassname"] + "__number_ranges"); | ||
| 1195 | + if (!optimize_code_size) { | ||
| 1196 | + std::vector<NameIndex> field_indices; | ||
| 1197 | + for (unsigned i = 0; i < descriptor_->field_count(); i++) { | ||
| 1198 | + field_indices.push_back({ .index = i, .name = sorted_fields[i]->name() }); | ||
| 1199 | + } | ||
| 1200 | + qsort(&field_indices[0], | ||
| 1201 | + field_indices.size(), | ||
| 1202 | + sizeof(NameIndex), | ||
| 1203 | + compare_name_indices_by_name); | ||
| 1204 | + printer->Print(vars, "static const unsigned $lcclassname$__field_indices_by_name[] = {\n"); | ||
| 1205 | + for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 1206 | + vars["index"] = SimpleItoa(field_indices[i].index); | ||
| 1207 | + vars["name"] = field_indices[i].name; | ||
| 1208 | + printer->Print(vars, " $index$, /* field[$index$] = $name$ */\n"); | ||
| 1209 | + } | ||
| 1210 | + printer->Print("};\n"); | ||
| 1211 | + } | ||
| 1212 | |||
| 1213 | - vars["n_ranges"] = SimpleItoa(n_ranges); | ||
| 1214 | - } else { | ||
| 1215 | - /* MS compiler can't handle arrays with zero size and empty | ||
| 1216 | - * initialization list. Furthermore it is an extension of GCC only but | ||
| 1217 | - * not a standard. */ | ||
| 1218 | - vars["n_ranges"] = "0"; | ||
| 1219 | - printer->Print(vars, | ||
| 1220 | - "#define $lcclassname$__field_descriptors NULL\n" | ||
| 1221 | - "#define $lcclassname$__field_indices_by_name NULL\n" | ||
| 1222 | - "#define $lcclassname$__number_ranges NULL\n"); | ||
| 1223 | + // create range initializers | ||
| 1224 | + std::vector<int> values; | ||
| 1225 | + for (int i = 0; i < descriptor_->field_count(); i++) { | ||
| 1226 | + values.push_back(sorted_fields[i]->number()); | ||
| 1227 | } | ||
| 1228 | + int n_ranges = WriteIntRanges(printer, | ||
| 1229 | + descriptor_->field_count(), | ||
| 1230 | + &values[0], | ||
| 1231 | + vars["lcclassname"] + "__number_ranges"); | ||
| 1232 | + | ||
| 1233 | + vars["n_ranges"] = SimpleItoa(n_ranges); | ||
| 1234 | + } else { | ||
| 1235 | + /* MS compiler can't handle arrays with zero size and empty | ||
| 1236 | + * initialization list. Furthermore it is an extension of GCC only but | ||
| 1237 | + * not a standard. */ | ||
| 1238 | + vars["n_ranges"] = "0"; | ||
| 1239 | + printer->Print(vars, | ||
| 1240 | + "#define $lcclassname$__field_descriptors NULL\n" | ||
| 1241 | + "#define $lcclassname$__field_indices_by_name NULL\n" | ||
| 1242 | + "#define $lcclassname$__number_ranges NULL\n"); | ||
| 1243 | + } | ||
| 1244 | |||
| 1245 | printer->Print(vars, | ||
| 1246 | - "const ProtobufCMessageDescriptor $lcclassname$__descriptor =\n" | ||
| 1247 | - "{\n" | ||
| 1248 | - " PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,\n"); | ||
| 1249 | + "const ProtobufCMessageDescriptor $lcclassname$__descriptor =\n" | ||
| 1250 | + "{\n" | ||
| 1251 | + " PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,\n"); | ||
| 1252 | if (optimize_code_size) { | ||
| 1253 | printer->Print(" NULL,NULL,NULL,NULL, /* CODE_SIZE */\n"); | ||
| 1254 | } else { | ||
| 1255 | printer->Print(vars, | ||
| 1256 | - " \"$fullname$\",\n" | ||
| 1257 | - " \"$shortname$\",\n" | ||
| 1258 | - " \"$classname$\",\n" | ||
| 1259 | - " \"$packagename$\",\n"); | ||
| 1260 | + " \"$fullname$\",\n" | ||
| 1261 | + " \"$shortname$\",\n" | ||
| 1262 | + " \"$classname$\",\n" | ||
| 1263 | + " \"$packagename$\",\n"); | ||
| 1264 | } | ||
| 1265 | printer->Print(vars, | ||
| 1266 | - " sizeof($classname$),\n" | ||
| 1267 | - " $n_fields$,\n" | ||
| 1268 | - " $lcclassname$__field_descriptors,\n"); | ||
| 1269 | + " sizeof($classname$),\n" | ||
| 1270 | + " $n_fields$,\n" | ||
| 1271 | + " $lcclassname$__field_descriptors,\n"); | ||
| 1272 | if (optimize_code_size) { | ||
| 1273 | printer->Print(" NULL, /* CODE_SIZE */\n"); | ||
| 1274 | } else { | ||
| 1275 | - printer->Print(vars, | ||
| 1276 | - " $lcclassname$__field_indices_by_name,\n"); | ||
| 1277 | + printer->Print(vars, " $lcclassname$__field_indices_by_name,\n"); | ||
| 1278 | } | ||
| 1279 | printer->Print(vars, | ||
| 1280 | - " $n_ranges$," | ||
| 1281 | - " $lcclassname$__number_ranges,\n"); | ||
| 1282 | + " $n_ranges$," | ||
| 1283 | + " $lcclassname$__number_ranges,\n"); | ||
| 1284 | if (gen_init) { | ||
| 1285 | - printer->Print(vars, | ||
| 1286 | - " (ProtobufCMessageInit) $lcclassname$__init,\n"); | ||
| 1287 | + printer->Print(vars, " (ProtobufCMessageInit) $lcclassname$__init,\n"); | ||
| 1288 | } else { | ||
| 1289 | - printer->Print(vars, | ||
| 1290 | - " NULL, /* gen_init_helpers = false */\n"); | ||
| 1291 | + printer->Print(vars, " NULL, /* gen_init_helpers = false */\n"); | ||
| 1292 | } | ||
| 1293 | printer->Print(vars, | ||
| 1294 | - " NULL,NULL,NULL /* reserved[123] */\n" | ||
| 1295 | - "};\n"); | ||
| 1296 | + " NULL,NULL,NULL /* reserved[123] */\n" | ||
| 1297 | + "};\n"); | ||
| 1298 | } | ||
| 1299 | |||
| 1300 | int MessageGenerator::GetOneofUnionOrder(const google::protobuf::FieldDescriptor* fd) | ||
| 1301 | |||
| 1302 | From c59b146aee2d97091ca2adeecd3f2741cb7f0082 Mon Sep 17 00:00:00 2001 | ||
| 1303 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 1304 | Date: Sat, 8 Feb 2025 21:10:37 -0500 | ||
| 1305 | Subject: [PATCH 08/11] compat: Use absl::string_view instead of | ||
| 1306 | google::protobuf::internal::DescriptorStringView | ||
| 1307 | |||
| 1308 | Even though google::protobuf::internal::DescriptorStringView is exposed | ||
| 1309 | in public protobuf headers, it's probably not a good idea to rely on an | ||
| 1310 | "internal" typedef. | ||
| 1311 | |||
| 1312 | According to https://protobuf.dev/news/2024-10-02/#descriptor-apis: | ||
| 1313 | |||
| 1314 | v30 will update return types in descriptor (such as full_name) to be | ||
| 1315 | absl::string_view. | ||
| 1316 | |||
| 1317 | So `absl::string_view` is probably the right type to use here. | ||
| 1318 | --- | ||
| 1319 | protoc-gen-c/compat.h | 6 +++++- | ||
| 1320 | 1 file changed, 5 insertions(+), 1 deletion(-) | ||
| 1321 | |||
| 1322 | diff --git a/protoc-gen-c/compat.h b/protoc-gen-c/compat.h | ||
| 1323 | index fe8041b5..a70cef34 100644 | ||
| 1324 | --- a/protoc-gen-c/compat.h | ||
| 1325 | +++ b/protoc-gen-c/compat.h | ||
| 1326 | @@ -37,12 +37,16 @@ | ||
| 1327 | # define GOOGLE_LOG ABSL_LOG | ||
| 1328 | #endif | ||
| 1329 | |||
| 1330 | +#if GOOGLE_PROTOBUF_VERSION >= 6030000 | ||
| 1331 | +# include <absl/strings/string_view.h> | ||
| 1332 | +#endif | ||
| 1333 | + | ||
| 1334 | namespace protobuf_c { | ||
| 1335 | |||
| 1336 | namespace compat { | ||
| 1337 | |||
| 1338 | #if GOOGLE_PROTOBUF_VERSION >= 6030000 | ||
| 1339 | -typedef google::protobuf::internal::DescriptorStringView StringView; | ||
| 1340 | +typedef absl::string_view StringView; | ||
| 1341 | #else | ||
| 1342 | typedef const std::string& StringView; | ||
| 1343 | #endif | ||
| 1344 | |||
| 1345 | From 9c56038fd9d3cc2552c297457d7a66efe5cbd2c7 Mon Sep 17 00:00:00 2001 | ||
| 1346 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 1347 | Date: Sat, 8 Feb 2025 21:37:30 -0500 | ||
| 1348 | Subject: [PATCH 09/11] Makefile.am: Add compat.h to | ||
| 1349 | protoc_gen_c_protoc_gen_c_SOURCES | ||
| 1350 | |||
| 1351 | --- | ||
| 1352 | Makefile.am | 1 + | ||
| 1353 | 1 file changed, 1 insertion(+) | ||
| 1354 | |||
| 1355 | diff --git a/Makefile.am b/Makefile.am | ||
| 1356 | index 77aa9d99..26d19f16 100644 | ||
| 1357 | --- a/Makefile.am | ||
| 1358 | +++ b/Makefile.am | ||
| 1359 | @@ -102,6 +102,7 @@ protoc_gen_c_protoc_gen_c_SOURCES = \ | ||
| 1360 | protoc-gen-c/c_service.h \ | ||
| 1361 | protoc-gen-c/c_string_field.cc \ | ||
| 1362 | protoc-gen-c/c_string_field.h \ | ||
| 1363 | + protoc-gen-c/compat.h \ | ||
| 1364 | protobuf-c/protobuf-c.pb.cc \ | ||
| 1365 | protobuf-c/protobuf-c.pb.h \ | ||
| 1366 | protoc-gen-c/main.cc | ||
| 1367 | |||
| 1368 | From 4ebd5cd8238d1f2ac6291b8c8925f34e16ce2123 Mon Sep 17 00:00:00 2001 | ||
| 1369 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 1370 | Date: Sat, 8 Feb 2025 21:38:07 -0500 | ||
| 1371 | Subject: [PATCH 10/11] compat: Conditionalize the include of <string> | ||
| 1372 | |||
| 1373 | It is only needed on older protobuf versions where absl::string_view is | ||
| 1374 | not being used. | ||
| 1375 | --- | ||
| 1376 | protoc-gen-c/compat.h | 4 ++-- | ||
| 1377 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
| 1378 | |||
| 1379 | diff --git a/protoc-gen-c/compat.h b/protoc-gen-c/compat.h | ||
| 1380 | index a70cef34..f6ace7cb 100644 | ||
| 1381 | --- a/protoc-gen-c/compat.h | ||
| 1382 | +++ b/protoc-gen-c/compat.h | ||
| 1383 | @@ -28,8 +28,6 @@ | ||
| 1384 | #ifndef PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__ | ||
| 1385 | #define PROTOBUF_C_PROTOC_GEN_C_COMPAT_H__ | ||
| 1386 | |||
| 1387 | -#include <string> | ||
| 1388 | - | ||
| 1389 | #if GOOGLE_PROTOBUF_VERSION >= 4022000 | ||
| 1390 | # define GOOGLE_ARRAYSIZE ABSL_ARRAYSIZE | ||
| 1391 | # define GOOGLE_CHECK_EQ ABSL_CHECK_EQ | ||
| 1392 | @@ -39,6 +37,8 @@ | ||
| 1393 | |||
| 1394 | #if GOOGLE_PROTOBUF_VERSION >= 6030000 | ||
| 1395 | # include <absl/strings/string_view.h> | ||
| 1396 | +#else | ||
| 1397 | +# include <string> | ||
| 1398 | #endif | ||
| 1399 | |||
| 1400 | namespace protobuf_c { | ||
| 1401 | |||
| 1402 | From 9a6b35e1e6956fb5cb044910448049b7a5339244 Mon Sep 17 00:00:00 2001 | ||
| 1403 | From: Robert Edmonds <edmonds@users.noreply.github.com> | ||
| 1404 | Date: Sat, 8 Feb 2025 21:44:42 -0500 | ||
| 1405 | Subject: [PATCH 11/11] Cater to Microsoft Visual C++ | ||
| 1406 | |||
| 1407 | Apparently MSVC doesn't support designated initializers for some reason. | ||
| 1408 | --- | ||
| 1409 | protoc-gen-c/c_enum.cc | 9 ++------- | ||
| 1410 | protoc-gen-c/c_message.cc | 2 +- | ||
| 1411 | 2 files changed, 3 insertions(+), 8 deletions(-) | ||
| 1412 | |||
| 1413 | diff --git a/protoc-gen-c/c_enum.cc b/protoc-gen-c/c_enum.cc | ||
| 1414 | index c7839edd..1940ba9d 100644 | ||
| 1415 | --- a/protoc-gen-c/c_enum.cc | ||
| 1416 | +++ b/protoc-gen-c/c_enum.cc | ||
| 1417 | @@ -195,14 +195,9 @@ void EnumGenerator::GenerateEnumDescriptor(google::protobuf::io::Printer* printe | ||
| 1418 | // Sort by name and value, dropping duplicate values if they appear later. | ||
| 1419 | // TODO: use a c++ paradigm for this! | ||
| 1420 | std::vector<ValueIndex> value_index; | ||
| 1421 | - for (unsigned j = 0; j < descriptor_->value_count(); j++) { | ||
| 1422 | + for (int j = 0; j < descriptor_->value_count(); j++) { | ||
| 1423 | const google::protobuf::EnumValueDescriptor *vd = descriptor_->value(j); | ||
| 1424 | - value_index.push_back({ | ||
| 1425 | - .value = vd->number(), | ||
| 1426 | - .index = j, | ||
| 1427 | - .final_index = 0, | ||
| 1428 | - .name = vd->name(), | ||
| 1429 | - }); | ||
| 1430 | + value_index.push_back({ vd->number(), (unsigned)j, 0, vd->name() }); | ||
| 1431 | } | ||
| 1432 | qsort(&value_index[0], | ||
| 1433 | value_index.size(), | ||
| 1434 | diff --git a/protoc-gen-c/c_message.cc b/protoc-gen-c/c_message.cc | ||
| 1435 | index 2a3b2a2f..94889179 100644 | ||
| 1436 | --- a/protoc-gen-c/c_message.cc | ||
| 1437 | +++ b/protoc-gen-c/c_message.cc | ||
| 1438 | @@ -581,7 +581,7 @@ GenerateMessageDescriptor(google::protobuf::io::Printer* printer, bool gen_init) | ||
| 1439 | if (!optimize_code_size) { | ||
| 1440 | std::vector<NameIndex> field_indices; | ||
| 1441 | for (unsigned i = 0; i < descriptor_->field_count(); i++) { | ||
| 1442 | - field_indices.push_back({ .index = i, .name = sorted_fields[i]->name() }); | ||
| 1443 | + field_indices.push_back({ i, sorted_fields[i]->name() }); | ||
| 1444 | } | ||
| 1445 | qsort(&field_indices[0], | ||
| 1446 | field_indices.size(), | ||
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.2.bb index 30c9e19b16..7fe514fe07 100644 --- a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.1.bb +++ b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.2.bb | |||
| @@ -13,11 +13,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=bd8de4f63e06b1ccc06e9f8dc5b1aa97" | |||
| 13 | DEPENDS = "protobuf-native protobuf" | 13 | DEPENDS = "protobuf-native protobuf" |
| 14 | 14 | ||
| 15 | SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https \ | 15 | SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https \ |
| 16 | file://protobuf-30.patch \ | ||
| 17 | " | 16 | " |
| 18 | SRC_URI:append:class-native = " file://0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch" | 17 | SRC_URI:append:class-native = " file://0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch" |
| 19 | 18 | ||
| 20 | SRCREV = "185beed28e65494be7505b30c1afeaf199e19b23" | 19 | SRCREV = "4719fdd7760624388c2c5b9d6759eb6a47490626" |
| 21 | 20 | ||
| 22 | 21 | ||
| 23 | inherit autotools pkgconfig | 22 | inherit autotools pkgconfig |
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf_6.33.5.bb b/meta-oe/recipes-devtools/protobuf/protobuf_6.33.6.bb index 66c9c24473..880dd82b1d 100644 --- a/meta-oe/recipes-devtools/protobuf/protobuf_6.33.5.bb +++ b/meta-oe/recipes-devtools/protobuf/protobuf_6.33.6.bb | |||
| @@ -16,7 +16,7 @@ PROTOC_BRANCH = "${@d.getVar('PV').split('.', 2)[1]}.x" | |||
| 16 | DEPENDS = "zlib abseil-cpp jsoncpp" | 16 | DEPENDS = "zlib abseil-cpp jsoncpp" |
| 17 | DEPENDS:append:class-target = " protobuf-native" | 17 | DEPENDS:append:class-target = " protobuf-native" |
| 18 | 18 | ||
| 19 | SRCREV = "b6f9284da830b69be787732ffdaa35049d20a088" | 19 | SRCREV = "6e1998413a5bca7c058b85999667893f167434bc" |
| 20 | 20 | ||
| 21 | SRC_URI = "git://github.com/protocolbuffers/protobuf.git;branch=${PROTOC_BRANCH};protocol=https;tag=${PROTOC_VERSION} \ | 21 | SRC_URI = "git://github.com/protocolbuffers/protobuf.git;branch=${PROTOC_BRANCH};protocol=https;tag=${PROTOC_VERSION} \ |
| 22 | file://run-ptest \ | 22 | file://run-ptest \ |
| @@ -29,6 +29,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d\.\d+\.\d+)" | |||
| 29 | CVE_PRODUCT = "google:protobuf protobuf:protobuf google-protobuf protobuf-cpp" | 29 | CVE_PRODUCT = "google:protobuf protobuf:protobuf google-protobuf protobuf-cpp" |
| 30 | 30 | ||
| 31 | CVE_STATUS[CVE-2026-0994] = "cpe-incorrect: the vulnerability affects only python3-protobuf recipe" | 31 | CVE_STATUS[CVE-2026-0994] = "cpe-incorrect: the vulnerability affects only python3-protobuf recipe" |
| 32 | CVE_STATUS[CVE-2026-6409] = "cpe-incorrect: the vulnerability affects only the php library" | ||
| 32 | 33 | ||
| 33 | inherit cmake pkgconfig ptest | 34 | inherit cmake pkgconfig ptest |
| 34 | 35 | ||
| @@ -53,6 +54,9 @@ LANG_SUPPORT = "cpp ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '' | |||
| 53 | CXXFLAGS:append:mipsarcho32 = " -latomic" | 54 | CXXFLAGS:append:mipsarcho32 = " -latomic" |
| 54 | CXXFLAGS:append:riscv32 = " -latomic" | 55 | CXXFLAGS:append:riscv32 = " -latomic" |
| 55 | 56 | ||
| 57 | # The ptests are not buildable now that pkgconf is being used, disable until fixed. | ||
| 58 | PTEST_ENABLED = "0" | ||
| 59 | |||
| 56 | do_compile_ptest() { | 60 | do_compile_ptest() { |
| 57 | mkdir -p "${B}/${TEST_SRC_DIR}" | 61 | mkdir -p "${B}/${TEST_SRC_DIR}" |
| 58 | 62 | ||
diff --git a/meta-oe/recipes-devtools/sip/sip_6.15.1.bb b/meta-oe/recipes-devtools/sip/sip_6.15.3.bb index b00d5d5e7a..5d6d8c78a6 100644 --- a/meta-oe/recipes-devtools/sip/sip_6.15.1.bb +++ b/meta-oe/recipes-devtools/sip/sip_6.15.3.bb | |||
| @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=236276327275fdb261636fb40b18d88d" | |||
| 11 | inherit pypi python_setuptools_build_meta python3native | 11 | inherit pypi python_setuptools_build_meta python3native |
| 12 | 12 | ||
| 13 | PYPI_PACKAGE = "sip" | 13 | PYPI_PACKAGE = "sip" |
| 14 | SRC_URI[sha256sum] = "dc2e58c1798a74e1b31c28e837339822fe8fa55288ae30e8986eb28100ebca5a" | 14 | SRC_URI[sha256sum] = "bb2516983f9f716d321e5157c00d0de0c12422eba73b8f43a44610a0f6622438" |
| 15 | 15 | ||
| 16 | DEPENDS += "python3-setuptools-scm-native" | 16 | DEPENDS += "python3-setuptools-scm-native" |
| 17 | 17 | ||
diff --git a/meta-oe/recipes-devtools/spdm-utils/spdm-utils-crates.inc b/meta-oe/recipes-devtools/spdm-utils/spdm-utils-crates.inc index 7a2aae9be7..0c3582d53d 100644 --- a/meta-oe/recipes-devtools/spdm-utils/spdm-utils-crates.inc +++ b/meta-oe/recipes-devtools/spdm-utils/spdm-utils-crates.inc | |||
| @@ -2,557 +2,393 @@ | |||
| 2 | 2 | ||
| 3 | # from Cargo.lock | 3 | # from Cargo.lock |
| 4 | SRC_URI += " \ | 4 | SRC_URI += " \ |
| 5 | crate://crates.io/aho-corasick/1.1.3 \ | 5 | crate://crates.io/aho-corasick/1.1.4 \ |
| 6 | crate://crates.io/anstream/0.6.18 \ | 6 | crate://crates.io/anstream/0.6.21 \ |
| 7 | crate://crates.io/anstyle/1.0.10 \ | 7 | crate://crates.io/anstyle/1.0.13 \ |
| 8 | crate://crates.io/anstyle-parse/0.2.6 \ | 8 | crate://crates.io/anstyle-parse/0.2.7 \ |
| 9 | crate://crates.io/anstyle-query/1.1.2 \ | 9 | crate://crates.io/anstyle-query/1.1.5 \ |
| 10 | crate://crates.io/anstyle-wincon/3.0.7 \ | 10 | crate://crates.io/anstyle-wincon/3.0.11 \ |
| 11 | crate://crates.io/asn1-rs/0.5.2 \ | 11 | crate://crates.io/asn1-rs/0.5.2 \ |
| 12 | crate://crates.io/asn1-rs/0.6.2 \ | 12 | crate://crates.io/asn1-rs/0.6.2 \ |
| 13 | crate://crates.io/asn1-rs-derive/0.4.0 \ | 13 | crate://crates.io/asn1-rs-derive/0.4.0 \ |
| 14 | crate://crates.io/asn1-rs-derive/0.5.1 \ | 14 | crate://crates.io/asn1-rs-derive/0.5.1 \ |
| 15 | crate://crates.io/asn1-rs-impl/0.1.0 \ | 15 | crate://crates.io/asn1-rs-impl/0.1.0 \ |
| 16 | crate://crates.io/asn1-rs-impl/0.2.0 \ | 16 | crate://crates.io/asn1-rs-impl/0.2.0 \ |
| 17 | crate://crates.io/async-attributes/1.1.2 \ | 17 | crate://crates.io/autocfg/1.5.0 \ |
| 18 | crate://crates.io/async-channel/1.9.0 \ | 18 | crate://crates.io/bindgen/0.72.1 \ |
| 19 | crate://crates.io/async-channel/2.3.1 \ | ||
| 20 | crate://crates.io/async-executor/1.13.1 \ | ||
| 21 | crate://crates.io/async-global-executor/2.4.1 \ | ||
| 22 | crate://crates.io/async-io/2.4.0 \ | ||
| 23 | crate://crates.io/async-lock/3.4.0 \ | ||
| 24 | crate://crates.io/async-std/1.13.0 \ | ||
| 25 | crate://crates.io/async-task/4.7.1 \ | ||
| 26 | crate://crates.io/atomic-waker/1.1.2 \ | ||
| 27 | crate://crates.io/autocfg/1.4.0 \ | ||
| 28 | crate://crates.io/bindgen/0.71.1 \ | ||
| 29 | crate://crates.io/bitfield/0.14.0 \ | 19 | crate://crates.io/bitfield/0.14.0 \ |
| 30 | crate://crates.io/bitflags/1.3.2 \ | 20 | crate://crates.io/bitflags/1.3.2 \ |
| 31 | crate://crates.io/bitflags/2.8.0 \ | 21 | crate://crates.io/bitflags/2.10.0 \ |
| 32 | crate://crates.io/block-buffer/0.10.4 \ | 22 | crate://crates.io/block-buffer/0.10.4 \ |
| 33 | crate://crates.io/blocking/1.6.1 \ | 23 | crate://crates.io/byteorder/1.5.0 \ |
| 34 | crate://crates.io/bumpalo/3.16.0 \ | 24 | crate://crates.io/bytes/1.11.1 \ |
| 35 | crate://crates.io/cexpr/0.6.0 \ | 25 | crate://crates.io/cexpr/0.6.0 \ |
| 36 | crate://crates.io/cfg-if/1.0.0 \ | 26 | crate://crates.io/cfg-if/1.0.4 \ |
| 37 | crate://crates.io/cfg_aliases/0.2.1 \ | 27 | crate://crates.io/cfg_aliases/0.2.1 \ |
| 38 | crate://crates.io/clang-sys/1.8.1 \ | 28 | crate://crates.io/clang-sys/1.8.1 \ |
| 39 | crate://crates.io/clap/4.5.27 \ | 29 | crate://crates.io/clap/4.5.57 \ |
| 40 | crate://crates.io/clap_builder/4.5.27 \ | 30 | crate://crates.io/clap_builder/4.5.57 \ |
| 41 | crate://crates.io/clap_derive/4.5.24 \ | 31 | crate://crates.io/clap_derive/4.5.55 \ |
| 42 | crate://crates.io/clap_lex/0.7.4 \ | 32 | crate://crates.io/clap_lex/0.7.7 \ |
| 43 | crate://crates.io/colorchoice/1.0.3 \ | 33 | crate://crates.io/colorchoice/1.0.4 \ |
| 44 | crate://crates.io/colored/2.2.0 \ | 34 | crate://crates.io/colored/2.2.0 \ |
| 45 | crate://crates.io/concurrent-queue/2.5.0 \ | ||
| 46 | crate://crates.io/core-foundation/0.10.0 \ | 35 | crate://crates.io/core-foundation/0.10.0 \ |
| 47 | crate://crates.io/core-foundation-sys/0.8.7 \ | 36 | crate://crates.io/core-foundation-sys/0.8.7 \ |
| 48 | crate://crates.io/cpufeatures/0.2.17 \ | 37 | crate://crates.io/cpufeatures/0.2.17 \ |
| 49 | crate://crates.io/crossbeam-utils/0.8.21 \ | 38 | crate://crates.io/crossterm/0.25.0 \ |
| 50 | crate://crates.io/crunchy/0.2.3 \ | 39 | crate://crates.io/crossterm_winapi/0.9.1 \ |
| 51 | crate://crates.io/crypto-common/0.1.6 \ | 40 | crate://crates.io/crunchy/0.2.4 \ |
| 52 | crate://crates.io/data-encoding/2.7.0 \ | 41 | crate://crates.io/crypto-common/0.1.7 \ |
| 42 | crate://crates.io/data-encoding/2.10.0 \ | ||
| 53 | crate://crates.io/der-parser/8.2.0 \ | 43 | crate://crates.io/der-parser/8.2.0 \ |
| 54 | crate://crates.io/deranged/0.3.11 \ | 44 | crate://crates.io/deranged/0.5.5 \ |
| 55 | crate://crates.io/digest/0.10.7 \ | 45 | crate://crates.io/digest/0.10.7 \ |
| 56 | crate://crates.io/displaydoc/0.2.5 \ | 46 | crate://crates.io/displaydoc/0.2.5 \ |
| 57 | crate://crates.io/either/1.13.0 \ | 47 | crate://crates.io/dyn-clone/1.0.20 \ |
| 48 | crate://crates.io/either/1.15.0 \ | ||
| 58 | crate://crates.io/embedded-crc-macros/1.0.0 \ | 49 | crate://crates.io/embedded-crc-macros/1.0.0 \ |
| 59 | crate://crates.io/env_logger/0.10.2 \ | 50 | crate://crates.io/env_logger/0.10.2 \ |
| 60 | crate://crates.io/errno/0.3.10 \ | 51 | crate://crates.io/errno/0.3.14 \ |
| 61 | crate://crates.io/event-listener/2.5.3 \ | ||
| 62 | crate://crates.io/event-listener/5.4.0 \ | ||
| 63 | crate://crates.io/event-listener-strategy/0.5.3 \ | ||
| 64 | crate://crates.io/fastrand/2.3.0 \ | ||
| 65 | crate://crates.io/futures/0.3.31 \ | 52 | crate://crates.io/futures/0.3.31 \ |
| 66 | crate://crates.io/futures-channel/0.3.31 \ | 53 | crate://crates.io/futures-channel/0.3.31 \ |
| 67 | crate://crates.io/futures-core/0.3.31 \ | 54 | crate://crates.io/futures-core/0.3.31 \ |
| 68 | crate://crates.io/futures-executor/0.3.31 \ | 55 | crate://crates.io/futures-executor/0.3.31 \ |
| 69 | crate://crates.io/futures-io/0.3.31 \ | 56 | crate://crates.io/futures-io/0.3.31 \ |
| 70 | crate://crates.io/futures-lite/2.6.0 \ | ||
| 71 | crate://crates.io/futures-macro/0.3.31 \ | 57 | crate://crates.io/futures-macro/0.3.31 \ |
| 72 | crate://crates.io/futures-sink/0.3.31 \ | 58 | crate://crates.io/futures-sink/0.3.31 \ |
| 73 | crate://crates.io/futures-task/0.3.31 \ | 59 | crate://crates.io/futures-task/0.3.31 \ |
| 74 | crate://crates.io/futures-util/0.3.31 \ | 60 | crate://crates.io/futures-util/0.3.31 \ |
| 61 | crate://crates.io/fuzzy-matcher/0.3.7 \ | ||
| 62 | crate://crates.io/fxhash/0.2.1 \ | ||
| 75 | crate://crates.io/generic-array/0.14.7 \ | 63 | crate://crates.io/generic-array/0.14.7 \ |
| 76 | crate://crates.io/glob/0.3.2 \ | 64 | crate://crates.io/glob/0.3.3 \ |
| 77 | crate://crates.io/gloo-timers/0.3.0 \ | 65 | crate://crates.io/half/2.7.1 \ |
| 78 | crate://crates.io/half/2.4.1 \ | ||
| 79 | crate://crates.io/heck/0.5.0 \ | 66 | crate://crates.io/heck/0.5.0 \ |
| 80 | crate://crates.io/hermit-abi/0.4.0 \ | 67 | crate://crates.io/hermit-abi/0.5.2 \ |
| 81 | crate://crates.io/home/0.5.11 \ | 68 | crate://crates.io/home/0.5.12 \ |
| 82 | crate://crates.io/humantime/2.1.0 \ | 69 | crate://crates.io/humantime/2.3.0 \ |
| 70 | crate://crates.io/inquire/0.7.5 \ | ||
| 83 | crate://crates.io/io-kit-sys/0.4.1 \ | 71 | crate://crates.io/io-kit-sys/0.4.1 \ |
| 84 | crate://crates.io/is-terminal/0.4.15 \ | 72 | crate://crates.io/is-terminal/0.4.17 \ |
| 85 | crate://crates.io/is_terminal_polyfill/1.70.1 \ | 73 | crate://crates.io/is_terminal_polyfill/1.70.2 \ |
| 86 | crate://crates.io/itertools/0.13.0 \ | 74 | crate://crates.io/itertools/0.13.0 \ |
| 87 | crate://crates.io/itoa/1.0.14 \ | 75 | crate://crates.io/itoa/1.0.17 \ |
| 88 | crate://crates.io/js-sys/0.3.77 \ | ||
| 89 | crate://crates.io/kv-log-macro/1.0.7 \ | ||
| 90 | crate://crates.io/lazy_static/1.5.0 \ | 76 | crate://crates.io/lazy_static/1.5.0 \ |
| 91 | crate://crates.io/libc/0.2.169 \ | 77 | crate://crates.io/libc/0.2.180 \ |
| 92 | crate://crates.io/libloading/0.8.6 \ | 78 | crate://crates.io/libloading/0.8.9 \ |
| 93 | crate://crates.io/libmctp/0.2.0 \ | 79 | crate://crates.io/libmctp/0.2.0 \ |
| 94 | crate://crates.io/libudev/0.3.0 \ | 80 | crate://crates.io/libudev/0.3.0 \ |
| 95 | crate://crates.io/libudev-sys/0.1.4 \ | 81 | crate://crates.io/libudev-sys/0.1.4 \ |
| 96 | crate://crates.io/linux-raw-sys/0.4.15 \ | 82 | crate://crates.io/linux-raw-sys/0.4.15 \ |
| 97 | crate://crates.io/log/0.4.25 \ | 83 | crate://crates.io/lock_api/0.4.14 \ |
| 98 | crate://crates.io/mach2/0.4.2 \ | 84 | crate://crates.io/log/0.4.29 \ |
| 99 | crate://crates.io/memchr/2.7.4 \ | 85 | crate://crates.io/mach2/0.4.3 \ |
| 86 | crate://crates.io/memchr/2.7.6 \ | ||
| 100 | crate://crates.io/memmap2/0.5.10 \ | 87 | crate://crates.io/memmap2/0.5.10 \ |
| 101 | crate://crates.io/minicbor/0.25.1 \ | 88 | crate://crates.io/minicbor/0.25.1 \ |
| 102 | crate://crates.io/minicbor-derive/0.15.3 \ | 89 | crate://crates.io/minicbor-derive/0.15.3 \ |
| 103 | crate://crates.io/minimal-lexical/0.2.1 \ | 90 | crate://crates.io/minimal-lexical/0.2.1 \ |
| 91 | crate://crates.io/mio/0.8.11 \ | ||
| 92 | crate://crates.io/mio/1.1.1 \ | ||
| 93 | crate://crates.io/newline-converter/0.3.0 \ | ||
| 104 | crate://crates.io/nix/0.26.4 \ | 94 | crate://crates.io/nix/0.26.4 \ |
| 105 | crate://crates.io/nix/0.29.0 \ | 95 | crate://crates.io/nix/0.29.0 \ |
| 106 | crate://crates.io/nom/7.1.3 \ | 96 | crate://crates.io/nom/7.1.3 \ |
| 107 | crate://crates.io/num-bigint/0.4.6 \ | 97 | crate://crates.io/num-bigint/0.4.6 \ |
| 108 | crate://crates.io/num-conv/0.1.0 \ | 98 | crate://crates.io/num-conv/0.2.0 \ |
| 109 | crate://crates.io/num-integer/0.1.46 \ | 99 | crate://crates.io/num-integer/0.1.46 \ |
| 110 | crate://crates.io/num-traits/0.2.19 \ | 100 | crate://crates.io/num-traits/0.2.19 \ |
| 111 | crate://crates.io/oid-registry/0.6.1 \ | 101 | crate://crates.io/oid-registry/0.6.1 \ |
| 112 | crate://crates.io/once_cell/1.20.2 \ | 102 | crate://crates.io/once_cell/1.21.3 \ |
| 113 | crate://crates.io/parking/2.2.1 \ | 103 | crate://crates.io/once_cell_polyfill/1.70.2 \ |
| 104 | crate://crates.io/parking_lot/0.12.5 \ | ||
| 105 | crate://crates.io/parking_lot_core/0.9.12 \ | ||
| 114 | crate://crates.io/pin-project-lite/0.2.16 \ | 106 | crate://crates.io/pin-project-lite/0.2.16 \ |
| 115 | crate://crates.io/pin-utils/0.1.0 \ | 107 | crate://crates.io/pin-utils/0.1.0 \ |
| 116 | crate://crates.io/piper/0.2.4 \ | 108 | crate://crates.io/pkg-config/0.3.32 \ |
| 117 | crate://crates.io/pkg-config/0.3.31 \ | ||
| 118 | crate://crates.io/polling/3.7.4 \ | ||
| 119 | crate://crates.io/powerfmt/0.2.0 \ | 109 | crate://crates.io/powerfmt/0.2.0 \ |
| 120 | crate://crates.io/prettyplease/0.2.29 \ | 110 | crate://crates.io/prettyplease/0.2.37 \ |
| 121 | crate://crates.io/proc-macro2/1.0.93 \ | 111 | crate://crates.io/proc-macro2/1.0.106 \ |
| 122 | crate://crates.io/quote/1.0.38 \ | 112 | crate://crates.io/quote/1.0.40 \ |
| 123 | crate://crates.io/regex/1.11.1 \ | 113 | crate://crates.io/redox_syscall/0.5.18 \ |
| 124 | crate://crates.io/regex-automata/0.4.9 \ | 114 | crate://crates.io/regex/1.12.3 \ |
| 125 | crate://crates.io/regex-syntax/0.8.5 \ | 115 | crate://crates.io/regex-automata/0.4.14 \ |
| 126 | crate://crates.io/rustc-hash/2.1.0 \ | 116 | crate://crates.io/regex-syntax/0.8.9 \ |
| 117 | crate://crates.io/rustc-hash/2.1.1 \ | ||
| 127 | crate://crates.io/rusticata-macros/4.1.0 \ | 118 | crate://crates.io/rusticata-macros/4.1.0 \ |
| 128 | crate://crates.io/rustix/0.38.44 \ | 119 | crate://crates.io/rustix/0.38.44 \ |
| 129 | crate://crates.io/rustversion/1.0.19 \ | ||
| 130 | crate://crates.io/scopeguard/1.2.0 \ | 120 | crate://crates.io/scopeguard/1.2.0 \ |
| 131 | crate://crates.io/serde/1.0.217 \ | 121 | crate://crates.io/serde_core/1.0.228 \ |
| 132 | crate://crates.io/serde_derive/1.0.217 \ | 122 | crate://crates.io/serde_derive/1.0.228 \ |
| 133 | crate://crates.io/serialport/4.7.0 \ | 123 | crate://crates.io/serialport/4.8.1 \ |
| 134 | crate://crates.io/sha2/0.10.8 \ | 124 | crate://crates.io/sha2/0.10.9 \ |
| 135 | crate://crates.io/shlex/1.3.0 \ | 125 | crate://crates.io/shlex/1.3.0 \ |
| 136 | crate://crates.io/slab/0.4.9 \ | 126 | crate://crates.io/signal-hook/0.3.18 \ |
| 127 | crate://crates.io/signal-hook-mio/0.2.5 \ | ||
| 128 | crate://crates.io/signal-hook-registry/1.4.8 \ | ||
| 129 | crate://crates.io/slab/0.4.12 \ | ||
| 130 | crate://crates.io/smallvec/1.15.1 \ | ||
| 137 | crate://crates.io/smbus-pec/1.0.1 \ | 131 | crate://crates.io/smbus-pec/1.0.1 \ |
| 132 | crate://crates.io/socket2/0.6.2 \ | ||
| 138 | crate://crates.io/strsim/0.11.1 \ | 133 | crate://crates.io/strsim/0.11.1 \ |
| 139 | crate://crates.io/syn/1.0.109 \ | 134 | crate://crates.io/syn/1.0.109 \ |
| 140 | crate://crates.io/syn/2.0.96 \ | 135 | crate://crates.io/syn/2.0.114 \ |
| 141 | crate://crates.io/synstructure/0.12.6 \ | 136 | crate://crates.io/synstructure/0.12.6 \ |
| 142 | crate://crates.io/synstructure/0.13.1 \ | 137 | crate://crates.io/synstructure/0.13.2 \ |
| 143 | crate://crates.io/termcolor/1.4.1 \ | 138 | crate://crates.io/termcolor/1.4.1 \ |
| 144 | crate://crates.io/thiserror/1.0.69 \ | 139 | crate://crates.io/thiserror/1.0.69 \ |
| 140 | crate://crates.io/thiserror/2.0.18 \ | ||
| 145 | crate://crates.io/thiserror-impl/1.0.69 \ | 141 | crate://crates.io/thiserror-impl/1.0.69 \ |
| 146 | crate://crates.io/time/0.3.37 \ | 142 | crate://crates.io/thiserror-impl/2.0.18 \ |
| 147 | crate://crates.io/time-core/0.1.2 \ | 143 | crate://crates.io/thread_local/1.1.9 \ |
| 148 | crate://crates.io/time-macros/0.2.19 \ | 144 | crate://crates.io/time/0.3.47 \ |
| 149 | crate://crates.io/tracing/0.1.41 \ | 145 | crate://crates.io/time-core/0.1.8 \ |
| 150 | crate://crates.io/tracing-core/0.1.33 \ | 146 | crate://crates.io/time-macros/0.2.27 \ |
| 151 | crate://crates.io/typenum/1.17.0 \ | 147 | crate://crates.io/tokio/1.49.0 \ |
| 152 | crate://crates.io/unescaper/0.1.5 \ | 148 | crate://crates.io/tokio-macros/2.6.0 \ |
| 153 | crate://crates.io/unicode-ident/1.0.15 \ | 149 | crate://crates.io/typenum/1.19.0 \ |
| 150 | crate://crates.io/unescaper/0.1.8 \ | ||
| 151 | crate://crates.io/unicode-ident/1.0.22 \ | ||
| 152 | crate://crates.io/unicode-segmentation/1.12.0 \ | ||
| 153 | crate://crates.io/unicode-width/0.1.14 \ | ||
| 154 | crate://crates.io/unicode-xid/0.2.6 \ | 154 | crate://crates.io/unicode-xid/0.2.6 \ |
| 155 | crate://crates.io/utf8parse/0.2.2 \ | 155 | crate://crates.io/utf8parse/0.2.2 \ |
| 156 | crate://crates.io/value-bag/1.10.0 \ | ||
| 157 | crate://crates.io/version_check/0.9.5 \ | 156 | crate://crates.io/version_check/0.9.5 \ |
| 158 | crate://crates.io/wasm-bindgen/0.2.100 \ | 157 | crate://crates.io/wasi/0.11.1+wasi-snapshot-preview1 \ |
| 159 | crate://crates.io/wasm-bindgen-backend/0.2.100 \ | ||
| 160 | crate://crates.io/wasm-bindgen-futures/0.4.50 \ | ||
| 161 | crate://crates.io/wasm-bindgen-macro/0.2.100 \ | ||
| 162 | crate://crates.io/wasm-bindgen-macro-support/0.2.100 \ | ||
| 163 | crate://crates.io/wasm-bindgen-shared/0.2.100 \ | ||
| 164 | crate://crates.io/web-sys/0.3.77 \ | ||
| 165 | crate://crates.io/which/6.0.3 \ | 158 | crate://crates.io/which/6.0.3 \ |
| 166 | crate://crates.io/winapi/0.3.9 \ | 159 | crate://crates.io/winapi/0.3.9 \ |
| 167 | crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ | 160 | crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ |
| 168 | crate://crates.io/winapi-util/0.1.9 \ | 161 | crate://crates.io/winapi-util/0.1.11 \ |
| 169 | crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ | 162 | crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ |
| 163 | crate://crates.io/windows-link/0.2.1 \ | ||
| 164 | crate://crates.io/windows-sys/0.48.0 \ | ||
| 165 | crate://crates.io/windows-sys/0.52.0 \ | ||
| 170 | crate://crates.io/windows-sys/0.59.0 \ | 166 | crate://crates.io/windows-sys/0.59.0 \ |
| 167 | crate://crates.io/windows-sys/0.60.2 \ | ||
| 168 | crate://crates.io/windows-sys/0.61.2 \ | ||
| 169 | crate://crates.io/windows-targets/0.48.5 \ | ||
| 171 | crate://crates.io/windows-targets/0.52.6 \ | 170 | crate://crates.io/windows-targets/0.52.6 \ |
| 171 | crate://crates.io/windows-targets/0.53.5 \ | ||
| 172 | crate://crates.io/windows_aarch64_gnullvm/0.48.5 \ | ||
| 172 | crate://crates.io/windows_aarch64_gnullvm/0.52.6 \ | 173 | crate://crates.io/windows_aarch64_gnullvm/0.52.6 \ |
| 174 | crate://crates.io/windows_aarch64_gnullvm/0.53.1 \ | ||
| 175 | crate://crates.io/windows_aarch64_msvc/0.48.5 \ | ||
| 173 | crate://crates.io/windows_aarch64_msvc/0.52.6 \ | 176 | crate://crates.io/windows_aarch64_msvc/0.52.6 \ |
| 177 | crate://crates.io/windows_aarch64_msvc/0.53.1 \ | ||
| 178 | crate://crates.io/windows_i686_gnu/0.48.5 \ | ||
| 174 | crate://crates.io/windows_i686_gnu/0.52.6 \ | 179 | crate://crates.io/windows_i686_gnu/0.52.6 \ |
| 180 | crate://crates.io/windows_i686_gnu/0.53.1 \ | ||
| 175 | crate://crates.io/windows_i686_gnullvm/0.52.6 \ | 181 | crate://crates.io/windows_i686_gnullvm/0.52.6 \ |
| 182 | crate://crates.io/windows_i686_gnullvm/0.53.1 \ | ||
| 183 | crate://crates.io/windows_i686_msvc/0.48.5 \ | ||
| 176 | crate://crates.io/windows_i686_msvc/0.52.6 \ | 184 | crate://crates.io/windows_i686_msvc/0.52.6 \ |
| 185 | crate://crates.io/windows_i686_msvc/0.53.1 \ | ||
| 186 | crate://crates.io/windows_x86_64_gnu/0.48.5 \ | ||
| 177 | crate://crates.io/windows_x86_64_gnu/0.52.6 \ | 187 | crate://crates.io/windows_x86_64_gnu/0.52.6 \ |
| 188 | crate://crates.io/windows_x86_64_gnu/0.53.1 \ | ||
| 189 | crate://crates.io/windows_x86_64_gnullvm/0.48.5 \ | ||
| 178 | crate://crates.io/windows_x86_64_gnullvm/0.52.6 \ | 190 | crate://crates.io/windows_x86_64_gnullvm/0.52.6 \ |
| 191 | crate://crates.io/windows_x86_64_gnullvm/0.53.1 \ | ||
| 192 | crate://crates.io/windows_x86_64_msvc/0.48.5 \ | ||
| 179 | crate://crates.io/windows_x86_64_msvc/0.52.6 \ | 193 | crate://crates.io/windows_x86_64_msvc/0.52.6 \ |
| 194 | crate://crates.io/windows_x86_64_msvc/0.53.1 \ | ||
| 180 | crate://crates.io/winsafe/0.0.19 \ | 195 | crate://crates.io/winsafe/0.0.19 \ |
| 181 | crate://crates.io/x509-parser/0.15.1 \ | 196 | crate://crates.io/x509-parser/0.15.1 \ |
| 197 | crate://crates.io/zerocopy/0.8.38 \ | ||
| 198 | crate://crates.io/zerocopy-derive/0.8.38 \ | ||
| 182 | " | 199 | " |
| 183 | 200 | ||
| 184 | SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" | 201 | SRC_URI[aho-corasick-1.1.4.sha256sum] = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" |
| 185 | SRC_URI[anstream-0.6.18.sha256sum] = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" | 202 | SRC_URI[anstream-0.6.21.sha256sum] = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" |
| 186 | SRC_URI[anstyle-1.0.10.sha256sum] = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" | 203 | SRC_URI[anstyle-1.0.13.sha256sum] = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" |
| 187 | SRC_URI[anstyle-parse-0.2.6.sha256sum] = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" | 204 | SRC_URI[anstyle-parse-0.2.7.sha256sum] = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" |
| 188 | SRC_URI[anstyle-query-1.1.2.sha256sum] = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" | 205 | SRC_URI[anstyle-query-1.1.5.sha256sum] = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" |
| 189 | SRC_URI[anstyle-wincon-3.0.7.sha256sum] = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" | 206 | SRC_URI[anstyle-wincon-3.0.11.sha256sum] = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" |
| 190 | SRC_URI[asn1-rs-0.5.2.sha256sum] = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" | 207 | SRC_URI[asn1-rs-0.5.2.sha256sum] = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" |
| 191 | SRC_URI[asn1-rs-0.6.2.sha256sum] = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" | 208 | SRC_URI[asn1-rs-0.6.2.sha256sum] = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" |
| 192 | SRC_URI[asn1-rs-derive-0.4.0.sha256sum] = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" | 209 | SRC_URI[asn1-rs-derive-0.4.0.sha256sum] = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" |
| 193 | SRC_URI[asn1-rs-derive-0.5.1.sha256sum] = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" | 210 | SRC_URI[asn1-rs-derive-0.5.1.sha256sum] = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" |
| 194 | SRC_URI[asn1-rs-impl-0.1.0.sha256sum] = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" | 211 | SRC_URI[asn1-rs-impl-0.1.0.sha256sum] = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" |
| 195 | SRC_URI[asn1-rs-impl-0.2.0.sha256sum] = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" | 212 | SRC_URI[asn1-rs-impl-0.2.0.sha256sum] = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" |
| 196 | SRC_URI[async-attributes-1.1.2.sha256sum] = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" | 213 | SRC_URI[autocfg-1.5.0.sha256sum] = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" |
| 197 | SRC_URI[async-channel-1.9.0.sha256sum] = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" | 214 | SRC_URI[bindgen-0.72.1.sha256sum] = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" |
| 198 | SRC_URI[async-channel-2.3.1.sha256sum] = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" | ||
| 199 | SRC_URI[async-executor-1.13.1.sha256sum] = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" | ||
| 200 | SRC_URI[async-global-executor-2.4.1.sha256sum] = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" | ||
| 201 | SRC_URI[async-io-2.4.0.sha256sum] = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" | ||
| 202 | SRC_URI[async-lock-3.4.0.sha256sum] = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" | ||
| 203 | SRC_URI[async-std-1.13.0.sha256sum] = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" | ||
| 204 | SRC_URI[async-task-4.7.1.sha256sum] = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" | ||
| 205 | SRC_URI[atomic-waker-1.1.2.sha256sum] = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" | ||
| 206 | SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" | ||
| 207 | SRC_URI[bindgen-0.71.1.sha256sum] = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" | ||
| 208 | SRC_URI[bitfield-0.14.0.sha256sum] = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" | 215 | SRC_URI[bitfield-0.14.0.sha256sum] = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" |
| 209 | SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | 216 | SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" |
| 210 | SRC_URI[bitflags-2.8.0.sha256sum] = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" | 217 | SRC_URI[bitflags-2.10.0.sha256sum] = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" |
| 211 | SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" | 218 | SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" |
| 212 | SRC_URI[blocking-1.6.1.sha256sum] = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" | 219 | SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" |
| 213 | SRC_URI[bumpalo-3.16.0.sha256sum] = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" | 220 | SRC_URI[bytes-1.11.1.sha256sum] = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" |
| 214 | SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" | 221 | SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" |
| 215 | SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | 222 | SRC_URI[cfg-if-1.0.4.sha256sum] = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" |
| 216 | SRC_URI[cfg_aliases-0.2.1.sha256sum] = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" | 223 | SRC_URI[cfg_aliases-0.2.1.sha256sum] = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" |
| 217 | SRC_URI[clang-sys-1.8.1.sha256sum] = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" | 224 | SRC_URI[clang-sys-1.8.1.sha256sum] = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" |
| 218 | SRC_URI[clap-4.5.27.sha256sum] = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" | 225 | SRC_URI[clap-4.5.57.sha256sum] = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" |
| 219 | SRC_URI[clap_builder-4.5.27.sha256sum] = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" | 226 | SRC_URI[clap_builder-4.5.57.sha256sum] = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" |
| 220 | SRC_URI[clap_derive-4.5.24.sha256sum] = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" | 227 | SRC_URI[clap_derive-4.5.55.sha256sum] = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" |
| 221 | SRC_URI[clap_lex-0.7.4.sha256sum] = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" | 228 | SRC_URI[clap_lex-0.7.7.sha256sum] = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" |
| 222 | SRC_URI[colorchoice-1.0.3.sha256sum] = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" | 229 | SRC_URI[colorchoice-1.0.4.sha256sum] = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" |
| 223 | SRC_URI[colored-2.2.0.sha256sum] = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" | 230 | SRC_URI[colored-2.2.0.sha256sum] = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" |
| 224 | SRC_URI[concurrent-queue-2.5.0.sha256sum] = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" | ||
| 225 | SRC_URI[core-foundation-0.10.0.sha256sum] = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" | 231 | SRC_URI[core-foundation-0.10.0.sha256sum] = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" |
| 226 | SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" | 232 | SRC_URI[core-foundation-sys-0.8.7.sha256sum] = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" |
| 227 | SRC_URI[cpufeatures-0.2.17.sha256sum] = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" | 233 | SRC_URI[cpufeatures-0.2.17.sha256sum] = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" |
| 228 | SRC_URI[crossbeam-utils-0.8.21.sha256sum] = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" | 234 | SRC_URI[crossterm-0.25.0.sha256sum] = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" |
| 229 | SRC_URI[crunchy-0.2.3.sha256sum] = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" | 235 | SRC_URI[crossterm_winapi-0.9.1.sha256sum] = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" |
| 230 | SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" | 236 | SRC_URI[crunchy-0.2.4.sha256sum] = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" |
| 231 | SRC_URI[data-encoding-2.7.0.sha256sum] = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" | 237 | SRC_URI[crypto-common-0.1.7.sha256sum] = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" |
| 238 | SRC_URI[data-encoding-2.10.0.sha256sum] = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" | ||
| 232 | SRC_URI[der-parser-8.2.0.sha256sum] = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" | 239 | SRC_URI[der-parser-8.2.0.sha256sum] = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" |
| 233 | SRC_URI[deranged-0.3.11.sha256sum] = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" | 240 | SRC_URI[deranged-0.5.5.sha256sum] = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" |
| 234 | SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" | 241 | SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" |
| 235 | SRC_URI[displaydoc-0.2.5.sha256sum] = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" | 242 | SRC_URI[displaydoc-0.2.5.sha256sum] = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" |
| 236 | SRC_URI[either-1.13.0.sha256sum] = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" | 243 | SRC_URI[dyn-clone-1.0.20.sha256sum] = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" |
| 244 | SRC_URI[either-1.15.0.sha256sum] = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" | ||
| 237 | SRC_URI[embedded-crc-macros-1.0.0.sha256sum] = "4f1c75747a43b086df1a87fb2a889590bc0725e0abf54bba6d0c4bf7bd9e762c" | 245 | SRC_URI[embedded-crc-macros-1.0.0.sha256sum] = "4f1c75747a43b086df1a87fb2a889590bc0725e0abf54bba6d0c4bf7bd9e762c" |
| 238 | SRC_URI[env_logger-0.10.2.sha256sum] = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" | 246 | SRC_URI[env_logger-0.10.2.sha256sum] = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" |
| 239 | SRC_URI[errno-0.3.10.sha256sum] = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" | 247 | SRC_URI[errno-0.3.14.sha256sum] = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" |
| 240 | SRC_URI[event-listener-2.5.3.sha256sum] = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" | ||
| 241 | SRC_URI[event-listener-5.4.0.sha256sum] = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" | ||
| 242 | SRC_URI[event-listener-strategy-0.5.3.sha256sum] = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" | ||
| 243 | SRC_URI[fastrand-2.3.0.sha256sum] = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" | ||
| 244 | SRC_URI[futures-0.3.31.sha256sum] = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" | 248 | SRC_URI[futures-0.3.31.sha256sum] = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" |
| 245 | SRC_URI[futures-channel-0.3.31.sha256sum] = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" | 249 | SRC_URI[futures-channel-0.3.31.sha256sum] = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" |
| 246 | SRC_URI[futures-core-0.3.31.sha256sum] = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" | 250 | SRC_URI[futures-core-0.3.31.sha256sum] = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" |
| 247 | SRC_URI[futures-executor-0.3.31.sha256sum] = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" | 251 | SRC_URI[futures-executor-0.3.31.sha256sum] = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" |
| 248 | SRC_URI[futures-io-0.3.31.sha256sum] = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" | 252 | SRC_URI[futures-io-0.3.31.sha256sum] = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" |
| 249 | SRC_URI[futures-lite-2.6.0.sha256sum] = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" | ||
| 250 | SRC_URI[futures-macro-0.3.31.sha256sum] = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" | 253 | SRC_URI[futures-macro-0.3.31.sha256sum] = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" |
| 251 | SRC_URI[futures-sink-0.3.31.sha256sum] = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" | 254 | SRC_URI[futures-sink-0.3.31.sha256sum] = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" |
| 252 | SRC_URI[futures-task-0.3.31.sha256sum] = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" | 255 | SRC_URI[futures-task-0.3.31.sha256sum] = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" |
| 253 | SRC_URI[futures-util-0.3.31.sha256sum] = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" | 256 | SRC_URI[futures-util-0.3.31.sha256sum] = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" |
| 257 | SRC_URI[fuzzy-matcher-0.3.7.sha256sum] = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" | ||
| 258 | SRC_URI[fxhash-0.2.1.sha256sum] = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" | ||
| 254 | SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" | 259 | SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" |
| 255 | SRC_URI[glob-0.3.2.sha256sum] = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" | 260 | SRC_URI[glob-0.3.3.sha256sum] = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" |
| 256 | SRC_URI[gloo-timers-0.3.0.sha256sum] = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" | 261 | SRC_URI[half-2.7.1.sha256sum] = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" |
| 257 | SRC_URI[half-2.4.1.sha256sum] = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" | ||
| 258 | SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" | 262 | SRC_URI[heck-0.5.0.sha256sum] = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" |
| 259 | SRC_URI[hermit-abi-0.4.0.sha256sum] = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" | 263 | SRC_URI[hermit-abi-0.5.2.sha256sum] = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" |
| 260 | SRC_URI[home-0.5.11.sha256sum] = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" | 264 | SRC_URI[home-0.5.12.sha256sum] = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" |
| 261 | SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" | 265 | SRC_URI[humantime-2.3.0.sha256sum] = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" |
| 266 | SRC_URI[inquire-0.7.5.sha256sum] = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a" | ||
| 262 | SRC_URI[io-kit-sys-0.4.1.sha256sum] = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" | 267 | SRC_URI[io-kit-sys-0.4.1.sha256sum] = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" |
| 263 | SRC_URI[is-terminal-0.4.15.sha256sum] = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37" | 268 | SRC_URI[is-terminal-0.4.17.sha256sum] = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" |
| 264 | SRC_URI[is_terminal_polyfill-1.70.1.sha256sum] = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" | 269 | SRC_URI[is_terminal_polyfill-1.70.2.sha256sum] = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" |
| 265 | SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" | 270 | SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" |
| 266 | SRC_URI[itoa-1.0.14.sha256sum] = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" | 271 | SRC_URI[itoa-1.0.17.sha256sum] = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" |
| 267 | SRC_URI[js-sys-0.3.77.sha256sum] = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" | ||
| 268 | SRC_URI[kv-log-macro-1.0.7.sha256sum] = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" | ||
| 269 | SRC_URI[lazy_static-1.5.0.sha256sum] = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" | 272 | SRC_URI[lazy_static-1.5.0.sha256sum] = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" |
| 270 | SRC_URI[libc-0.2.169.sha256sum] = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" | 273 | SRC_URI[libc-0.2.180.sha256sum] = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" |
| 271 | SRC_URI[libloading-0.8.6.sha256sum] = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" | 274 | SRC_URI[libloading-0.8.9.sha256sum] = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" |
| 272 | SRC_URI[libmctp-0.2.0.sha256sum] = "0d077261b65cfe16a3d490243354fbaec3f22e5bcad546d21394105ab836d1d0" | 275 | SRC_URI[libmctp-0.2.0.sha256sum] = "0d077261b65cfe16a3d490243354fbaec3f22e5bcad546d21394105ab836d1d0" |
| 273 | SRC_URI[libudev-0.3.0.sha256sum] = "78b324152da65df7bb95acfcaab55e3097ceaab02fb19b228a9eb74d55f135e0" | 276 | SRC_URI[libudev-0.3.0.sha256sum] = "78b324152da65df7bb95acfcaab55e3097ceaab02fb19b228a9eb74d55f135e0" |
| 274 | SRC_URI[libudev-sys-0.1.4.sha256sum] = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" | 277 | SRC_URI[libudev-sys-0.1.4.sha256sum] = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" |
| 275 | SRC_URI[linux-raw-sys-0.4.15.sha256sum] = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" | 278 | SRC_URI[linux-raw-sys-0.4.15.sha256sum] = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" |
| 276 | SRC_URI[log-0.4.25.sha256sum] = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" | 279 | SRC_URI[lock_api-0.4.14.sha256sum] = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" |
| 277 | SRC_URI[mach2-0.4.2.sha256sum] = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" | 280 | SRC_URI[log-0.4.29.sha256sum] = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" |
| 278 | SRC_URI[memchr-2.7.4.sha256sum] = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" | 281 | SRC_URI[mach2-0.4.3.sha256sum] = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" |
| 282 | SRC_URI[memchr-2.7.6.sha256sum] = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" | ||
| 279 | SRC_URI[memmap2-0.5.10.sha256sum] = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" | 283 | SRC_URI[memmap2-0.5.10.sha256sum] = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" |
| 280 | SRC_URI[minicbor-0.25.1.sha256sum] = "c0452a60c1863c1f50b5f77cd295e8d2786849f35883f0b9e18e7e6e1b5691b0" | 284 | SRC_URI[minicbor-0.25.1.sha256sum] = "c0452a60c1863c1f50b5f77cd295e8d2786849f35883f0b9e18e7e6e1b5691b0" |
| 281 | SRC_URI[minicbor-derive-0.15.3.sha256sum] = "bd2209fff77f705b00c737016a48e73733d7fbccb8b007194db148f03561fb70" | 285 | SRC_URI[minicbor-derive-0.15.3.sha256sum] = "bd2209fff77f705b00c737016a48e73733d7fbccb8b007194db148f03561fb70" |
| 282 | SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" | 286 | SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" |
| 287 | SRC_URI[mio-0.8.11.sha256sum] = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" | ||
| 288 | SRC_URI[mio-1.1.1.sha256sum] = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" | ||
| 289 | SRC_URI[newline-converter-0.3.0.sha256sum] = "47b6b097ecb1cbfed438542d16e84fd7ad9b0c76c8a65b7f9039212a3d14dc7f" | ||
| 283 | SRC_URI[nix-0.26.4.sha256sum] = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" | 290 | SRC_URI[nix-0.26.4.sha256sum] = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" |
| 284 | SRC_URI[nix-0.29.0.sha256sum] = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" | 291 | SRC_URI[nix-0.29.0.sha256sum] = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" |
| 285 | SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" | 292 | SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" |
| 286 | SRC_URI[num-bigint-0.4.6.sha256sum] = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" | 293 | SRC_URI[num-bigint-0.4.6.sha256sum] = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" |
| 287 | SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" | 294 | SRC_URI[num-conv-0.2.0.sha256sum] = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" |
| 288 | SRC_URI[num-integer-0.1.46.sha256sum] = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" | 295 | SRC_URI[num-integer-0.1.46.sha256sum] = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" |
| 289 | SRC_URI[num-traits-0.2.19.sha256sum] = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" | 296 | SRC_URI[num-traits-0.2.19.sha256sum] = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" |
| 290 | SRC_URI[oid-registry-0.6.1.sha256sum] = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" | 297 | SRC_URI[oid-registry-0.6.1.sha256sum] = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" |
| 291 | SRC_URI[once_cell-1.20.2.sha256sum] = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" | 298 | SRC_URI[once_cell-1.21.3.sha256sum] = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" |
| 292 | SRC_URI[parking-2.2.1.sha256sum] = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" | 299 | SRC_URI[once_cell_polyfill-1.70.2.sha256sum] = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" |
| 300 | SRC_URI[parking_lot-0.12.5.sha256sum] = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" | ||
| 301 | SRC_URI[parking_lot_core-0.9.12.sha256sum] = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" | ||
| 293 | SRC_URI[pin-project-lite-0.2.16.sha256sum] = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" | 302 | SRC_URI[pin-project-lite-0.2.16.sha256sum] = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" |
| 294 | SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" | 303 | SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" |
| 295 | SRC_URI[piper-0.2.4.sha256sum] = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" | 304 | SRC_URI[pkg-config-0.3.32.sha256sum] = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" |
| 296 | SRC_URI[pkg-config-0.3.31.sha256sum] = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" | ||
| 297 | SRC_URI[polling-3.7.4.sha256sum] = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" | ||
| 298 | SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" | 305 | SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" |
| 299 | SRC_URI[prettyplease-0.2.29.sha256sum] = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" | 306 | SRC_URI[prettyplease-0.2.37.sha256sum] = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" |
| 300 | SRC_URI[proc-macro2-1.0.93.sha256sum] = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" | 307 | SRC_URI[proc-macro2-1.0.106.sha256sum] = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" |
| 301 | SRC_URI[quote-1.0.38.sha256sum] = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" | 308 | SRC_URI[quote-1.0.40.sha256sum] = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" |
| 302 | SRC_URI[regex-1.11.1.sha256sum] = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" | 309 | SRC_URI[redox_syscall-0.5.18.sha256sum] = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" |
| 303 | SRC_URI[regex-automata-0.4.9.sha256sum] = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" | 310 | SRC_URI[regex-1.12.3.sha256sum] = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" |
| 304 | SRC_URI[regex-syntax-0.8.5.sha256sum] = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" | 311 | SRC_URI[regex-automata-0.4.14.sha256sum] = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" |
| 305 | SRC_URI[rustc-hash-2.1.0.sha256sum] = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" | 312 | SRC_URI[regex-syntax-0.8.9.sha256sum] = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" |
| 313 | SRC_URI[rustc-hash-2.1.1.sha256sum] = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" | ||
| 306 | SRC_URI[rusticata-macros-4.1.0.sha256sum] = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" | 314 | SRC_URI[rusticata-macros-4.1.0.sha256sum] = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" |
| 307 | SRC_URI[rustix-0.38.44.sha256sum] = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" | 315 | SRC_URI[rustix-0.38.44.sha256sum] = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" |
| 308 | SRC_URI[rustversion-1.0.19.sha256sum] = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" | ||
| 309 | SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" | 316 | SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" |
| 310 | SRC_URI[serde-1.0.217.sha256sum] = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" | 317 | SRC_URI[serde_core-1.0.228.sha256sum] = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" |
| 311 | SRC_URI[serde_derive-1.0.217.sha256sum] = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" | 318 | SRC_URI[serde_derive-1.0.228.sha256sum] = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" |
| 312 | SRC_URI[serialport-4.7.0.sha256sum] = "5ecfc4858c2266c7695d8b8460bbd612fa81bd2e250f5f0dd16195e4b4f8b3d8" | 319 | SRC_URI[serialport-4.8.1.sha256sum] = "21f60a586160667241d7702c420fc223939fb3c0bb8d3fac84f78768e8970dee" |
| 313 | SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" | 320 | SRC_URI[sha2-0.10.9.sha256sum] = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" |
| 314 | SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" | 321 | SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" |
| 315 | SRC_URI[slab-0.4.9.sha256sum] = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" | 322 | SRC_URI[signal-hook-0.3.18.sha256sum] = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" |
| 323 | SRC_URI[signal-hook-mio-0.2.5.sha256sum] = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" | ||
| 324 | SRC_URI[signal-hook-registry-1.4.8.sha256sum] = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" | ||
| 325 | SRC_URI[slab-0.4.12.sha256sum] = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" | ||
| 326 | SRC_URI[smallvec-1.15.1.sha256sum] = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" | ||
| 316 | SRC_URI[smbus-pec-1.0.1.sha256sum] = "ca0763a680cd5d72b28f7bfc8a054c117d8841380a6ad4f72f05bd2a34217d3e" | 327 | SRC_URI[smbus-pec-1.0.1.sha256sum] = "ca0763a680cd5d72b28f7bfc8a054c117d8841380a6ad4f72f05bd2a34217d3e" |
| 328 | SRC_URI[socket2-0.6.2.sha256sum] = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" | ||
| 317 | SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" | 329 | SRC_URI[strsim-0.11.1.sha256sum] = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" |
| 318 | SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" | 330 | SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" |
| 319 | SRC_URI[syn-2.0.96.sha256sum] = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" | 331 | SRC_URI[syn-2.0.114.sha256sum] = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" |
| 320 | SRC_URI[synstructure-0.12.6.sha256sum] = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" | 332 | SRC_URI[synstructure-0.12.6.sha256sum] = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" |
| 321 | SRC_URI[synstructure-0.13.1.sha256sum] = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" | 333 | SRC_URI[synstructure-0.13.2.sha256sum] = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" |
| 322 | SRC_URI[termcolor-1.4.1.sha256sum] = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" | 334 | SRC_URI[termcolor-1.4.1.sha256sum] = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" |
| 323 | SRC_URI[thiserror-1.0.69.sha256sum] = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" | 335 | SRC_URI[thiserror-1.0.69.sha256sum] = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" |
| 336 | SRC_URI[thiserror-2.0.18.sha256sum] = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" | ||
| 324 | SRC_URI[thiserror-impl-1.0.69.sha256sum] = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" | 337 | SRC_URI[thiserror-impl-1.0.69.sha256sum] = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" |
| 325 | SRC_URI[time-0.3.37.sha256sum] = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" | 338 | SRC_URI[thiserror-impl-2.0.18.sha256sum] = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" |
| 326 | SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" | 339 | SRC_URI[thread_local-1.1.9.sha256sum] = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" |
| 327 | SRC_URI[time-macros-0.2.19.sha256sum] = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" | 340 | SRC_URI[time-0.3.47.sha256sum] = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" |
| 328 | SRC_URI[tracing-0.1.41.sha256sum] = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" | 341 | SRC_URI[time-core-0.1.8.sha256sum] = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" |
| 329 | SRC_URI[tracing-core-0.1.33.sha256sum] = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" | 342 | SRC_URI[time-macros-0.2.27.sha256sum] = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" |
| 330 | SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" | 343 | SRC_URI[tokio-1.49.0.sha256sum] = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" |
| 331 | SRC_URI[unescaper-0.1.5.sha256sum] = "c878a167baa8afd137494101a688ef8c67125089ff2249284bd2b5f9bfedb815" | 344 | SRC_URI[tokio-macros-2.6.0.sha256sum] = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" |
| 332 | SRC_URI[unicode-ident-1.0.15.sha256sum] = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" | 345 | SRC_URI[typenum-1.19.0.sha256sum] = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" |
| 346 | SRC_URI[unescaper-0.1.8.sha256sum] = "4064ed685c487dbc25bd3f0e9548f2e34bab9d18cefc700f9ec2dba74ba1138e" | ||
| 347 | SRC_URI[unicode-ident-1.0.22.sha256sum] = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" | ||
| 348 | SRC_URI[unicode-segmentation-1.12.0.sha256sum] = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" | ||
| 349 | SRC_URI[unicode-width-0.1.14.sha256sum] = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" | ||
| 333 | SRC_URI[unicode-xid-0.2.6.sha256sum] = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" | 350 | SRC_URI[unicode-xid-0.2.6.sha256sum] = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" |
| 334 | SRC_URI[utf8parse-0.2.2.sha256sum] = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" | 351 | SRC_URI[utf8parse-0.2.2.sha256sum] = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" |
| 335 | SRC_URI[value-bag-1.10.0.sha256sum] = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" | ||
| 336 | SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" | 352 | SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" |
| 337 | SRC_URI[wasm-bindgen-0.2.100.sha256sum] = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" | 353 | SRC_URI[wasi-0.11.1+wasi-snapshot-preview1.sha256sum] = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" |
| 338 | SRC_URI[wasm-bindgen-backend-0.2.100.sha256sum] = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" | ||
| 339 | SRC_URI[wasm-bindgen-futures-0.4.50.sha256sum] = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" | ||
| 340 | SRC_URI[wasm-bindgen-macro-0.2.100.sha256sum] = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" | ||
| 341 | SRC_URI[wasm-bindgen-macro-support-0.2.100.sha256sum] = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" | ||
| 342 | SRC_URI[wasm-bindgen-shared-0.2.100.sha256sum] = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" | ||
| 343 | SRC_URI[web-sys-0.3.77.sha256sum] = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" | ||
| 344 | SRC_URI[which-6.0.3.sha256sum] = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" | 354 | SRC_URI[which-6.0.3.sha256sum] = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" |
| 345 | SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" | 355 | SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" |
| 346 | SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" | 356 | SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" |
| 347 | SRC_URI[winapi-util-0.1.9.sha256sum] = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" | 357 | SRC_URI[winapi-util-0.1.11.sha256sum] = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" |
| 348 | SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" | 358 | SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" |
| 359 | SRC_URI[windows-link-0.2.1.sha256sum] = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" | ||
| 360 | SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" | ||
| 361 | SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" | ||
| 349 | SRC_URI[windows-sys-0.59.0.sha256sum] = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" | 362 | SRC_URI[windows-sys-0.59.0.sha256sum] = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" |
| 363 | SRC_URI[windows-sys-0.60.2.sha256sum] = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" | ||
| 364 | SRC_URI[windows-sys-0.61.2.sha256sum] = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" | ||
| 365 | SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" | ||
| 350 | SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" | 366 | SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" |
| 367 | SRC_URI[windows-targets-0.53.5.sha256sum] = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" | ||
| 368 | SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" | ||
| 351 | SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" | 369 | SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" |
| 370 | SRC_URI[windows_aarch64_gnullvm-0.53.1.sha256sum] = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" | ||
| 371 | SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" | ||
| 352 | SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" | 372 | SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" |
| 373 | SRC_URI[windows_aarch64_msvc-0.53.1.sha256sum] = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" | ||
| 374 | SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" | ||
| 353 | SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" | 375 | SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" |
| 376 | SRC_URI[windows_i686_gnu-0.53.1.sha256sum] = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" | ||
| 354 | SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" | 377 | SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" |
| 378 | SRC_URI[windows_i686_gnullvm-0.53.1.sha256sum] = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" | ||
| 379 | SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" | ||
| 355 | SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" | 380 | SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" |
| 381 | SRC_URI[windows_i686_msvc-0.53.1.sha256sum] = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" | ||
| 382 | SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" | ||
| 356 | SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" | 383 | SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" |
| 384 | SRC_URI[windows_x86_64_gnu-0.53.1.sha256sum] = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" | ||
| 385 | SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" | ||
| 357 | SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" | 386 | SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" |
| 387 | SRC_URI[windows_x86_64_gnullvm-0.53.1.sha256sum] = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" | ||
| 388 | SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" | ||
| 358 | SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" | 389 | SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" |
| 390 | SRC_URI[windows_x86_64_msvc-0.53.1.sha256sum] = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" | ||
| 359 | SRC_URI[winsafe-0.0.19.sha256sum] = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" | 391 | SRC_URI[winsafe-0.0.19.sha256sum] = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" |
| 360 | SRC_URI[x509-parser-0.15.1.sha256sum] = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" | 392 | SRC_URI[x509-parser-0.15.1.sha256sum] = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" |
| 361 | # from tock-responder/Cargo.lock | 393 | SRC_URI[zerocopy-0.8.38.sha256sum] = "57cf3aa6855b23711ee9852dfc97dfaa51c45feaba5b645d0c777414d494a961" |
| 362 | SRC_URI += " \ | 394 | SRC_URI[zerocopy-derive-0.8.38.sha256sum] = "8a616990af1a287837c4fe6596ad77ef57948f787e46ce28e166facc0cc1cb75" |
| 363 | crate://crates.io/aho-corasick/1.1.3 \ | ||
| 364 | crate://crates.io/atty/0.2.14 \ | ||
| 365 | crate://crates.io/autocfg/1.4.0 \ | ||
| 366 | crate://crates.io/bindgen/0.71.1 \ | ||
| 367 | crate://crates.io/bitfield/0.14.0 \ | ||
| 368 | crate://crates.io/bitflags/1.3.2 \ | ||
| 369 | crate://crates.io/bitflags/2.8.0 \ | ||
| 370 | crate://crates.io/byteorder/0.5.3 \ | ||
| 371 | crate://crates.io/cexpr/0.6.0 \ | ||
| 372 | crate://crates.io/cfg-if/1.0.0 \ | ||
| 373 | crate://crates.io/clang-sys/1.8.1 \ | ||
| 374 | crate://crates.io/clap/3.2.25 \ | ||
| 375 | crate://crates.io/clap_derive/3.2.25 \ | ||
| 376 | crate://crates.io/clap_lex/0.2.4 \ | ||
| 377 | crate://crates.io/critical-section/1.2.0 \ | ||
| 378 | crate://crates.io/either/1.13.0 \ | ||
| 379 | crate://crates.io/elf/0.0.10 \ | ||
| 380 | crate://crates.io/embedded-alloc/0.5.1 \ | ||
| 381 | crate://crates.io/embedded-crc-macros/1.0.0 \ | ||
| 382 | crate://crates.io/errno/0.3.10 \ | ||
| 383 | crate://crates.io/glob/0.3.2 \ | ||
| 384 | crate://crates.io/hashbrown/0.12.3 \ | ||
| 385 | crate://crates.io/heck/0.4.1 \ | ||
| 386 | crate://crates.io/hermit-abi/0.1.19 \ | ||
| 387 | crate://crates.io/home/0.5.11 \ | ||
| 388 | crate://crates.io/indexmap/1.9.3 \ | ||
| 389 | crate://crates.io/itertools/0.13.0 \ | ||
| 390 | crate://crates.io/libc/0.2.169 \ | ||
| 391 | crate://crates.io/libloading/0.8.6 \ | ||
| 392 | crate://crates.io/libm/0.2.11 \ | ||
| 393 | crate://crates.io/libmctp/0.2.0 \ | ||
| 394 | crate://crates.io/linked_list_allocator/0.10.5 \ | ||
| 395 | crate://crates.io/linux-raw-sys/0.4.15 \ | ||
| 396 | crate://crates.io/log/0.4.25 \ | ||
| 397 | crate://crates.io/memchr/2.7.4 \ | ||
| 398 | crate://crates.io/minimal-lexical/0.2.1 \ | ||
| 399 | crate://crates.io/nom/7.1.3 \ | ||
| 400 | crate://crates.io/numtoa/0.1.0 \ | ||
| 401 | crate://crates.io/once_cell/1.20.2 \ | ||
| 402 | crate://crates.io/os_str_bytes/6.6.1 \ | ||
| 403 | crate://crates.io/portable-atomic/1.10.0 \ | ||
| 404 | crate://crates.io/prettyplease/0.2.29 \ | ||
| 405 | crate://crates.io/proc-macro-error/1.0.4 \ | ||
| 406 | crate://crates.io/proc-macro-error-attr/1.0.4 \ | ||
| 407 | crate://crates.io/proc-macro2/1.0.93 \ | ||
| 408 | crate://crates.io/quote/1.0.38 \ | ||
| 409 | crate://crates.io/redox_syscall/0.2.16 \ | ||
| 410 | crate://crates.io/redox_termios/0.1.3 \ | ||
| 411 | crate://crates.io/regex/1.11.1 \ | ||
| 412 | crate://crates.io/regex-automata/0.4.9 \ | ||
| 413 | crate://crates.io/regex-syntax/0.8.5 \ | ||
| 414 | crate://crates.io/rustc-hash/2.1.0 \ | ||
| 415 | crate://crates.io/rustix/0.38.44 \ | ||
| 416 | crate://crates.io/shlex/1.3.0 \ | ||
| 417 | crate://crates.io/smbus-pec/1.0.1 \ | ||
| 418 | crate://crates.io/strsim/0.10.0 \ | ||
| 419 | crate://crates.io/syn/1.0.109 \ | ||
| 420 | crate://crates.io/syn/2.0.96 \ | ||
| 421 | crate://crates.io/termcolor/1.4.1 \ | ||
| 422 | crate://crates.io/termion/1.5.6 \ | ||
| 423 | crate://crates.io/textwrap/0.16.1 \ | ||
| 424 | crate://crates.io/unicode-ident/1.0.15 \ | ||
| 425 | crate://crates.io/version_check/0.9.5 \ | ||
| 426 | crate://crates.io/which/6.0.3 \ | ||
| 427 | crate://crates.io/winapi/0.3.9 \ | ||
| 428 | crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \ | ||
| 429 | crate://crates.io/winapi-util/0.1.9 \ | ||
| 430 | crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \ | ||
| 431 | crate://crates.io/windows-sys/0.59.0 \ | ||
| 432 | crate://crates.io/windows-targets/0.52.6 \ | ||
| 433 | crate://crates.io/windows_aarch64_gnullvm/0.52.6 \ | ||
| 434 | crate://crates.io/windows_aarch64_msvc/0.52.6 \ | ||
| 435 | crate://crates.io/windows_i686_gnu/0.52.6 \ | ||
| 436 | crate://crates.io/windows_i686_gnullvm/0.52.6 \ | ||
| 437 | crate://crates.io/windows_i686_msvc/0.52.6 \ | ||
| 438 | crate://crates.io/windows_x86_64_gnu/0.52.6 \ | ||
| 439 | crate://crates.io/windows_x86_64_gnullvm/0.52.6 \ | ||
| 440 | crate://crates.io/windows_x86_64_msvc/0.52.6 \ | ||
| 441 | crate://crates.io/winsafe/0.0.19 \ | ||
| 442 | " | ||
| 443 | |||
| 444 | SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" | ||
| 445 | SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" | ||
| 446 | SRC_URI[autocfg-1.4.0.sha256sum] = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" | ||
| 447 | SRC_URI[bindgen-0.71.1.sha256sum] = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" | ||
| 448 | SRC_URI[bitfield-0.14.0.sha256sum] = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" | ||
| 449 | SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | ||
| 450 | SRC_URI[bitflags-2.8.0.sha256sum] = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" | ||
| 451 | SRC_URI[byteorder-0.5.3.sha256sum] = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" | ||
| 452 | SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" | ||
| 453 | SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||
| 454 | SRC_URI[clang-sys-1.8.1.sha256sum] = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" | ||
| 455 | SRC_URI[clap-3.2.25.sha256sum] = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" | ||
| 456 | SRC_URI[clap_derive-3.2.25.sha256sum] = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" | ||
| 457 | SRC_URI[clap_lex-0.2.4.sha256sum] = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" | ||
| 458 | SRC_URI[critical-section-1.2.0.sha256sum] = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" | ||
| 459 | SRC_URI[either-1.13.0.sha256sum] = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" | ||
| 460 | SRC_URI[elf-0.0.10.sha256sum] = "4841de15dbe0e49b9b62a417589299e3be0d557e0900d36acb87e6dae47197f5" | ||
| 461 | SRC_URI[embedded-alloc-0.5.1.sha256sum] = "ddae17915accbac2cfbc64ea0ae6e3b330e6ea124ba108dada63646fd3c6f815" | ||
| 462 | SRC_URI[embedded-crc-macros-1.0.0.sha256sum] = "4f1c75747a43b086df1a87fb2a889590bc0725e0abf54bba6d0c4bf7bd9e762c" | ||
| 463 | SRC_URI[errno-0.3.10.sha256sum] = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" | ||
| 464 | SRC_URI[glob-0.3.2.sha256sum] = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" | ||
| 465 | SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" | ||
| 466 | SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" | ||
| 467 | SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" | ||
| 468 | SRC_URI[home-0.5.11.sha256sum] = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" | ||
| 469 | SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" | ||
| 470 | SRC_URI[itertools-0.13.0.sha256sum] = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" | ||
| 471 | SRC_URI[libc-0.2.169.sha256sum] = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" | ||
| 472 | SRC_URI[libloading-0.8.6.sha256sum] = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" | ||
| 473 | SRC_URI[libm-0.2.11.sha256sum] = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" | ||
| 474 | SRC_URI[libmctp-0.2.0.sha256sum] = "0d077261b65cfe16a3d490243354fbaec3f22e5bcad546d21394105ab836d1d0" | ||
| 475 | SRC_URI[linked_list_allocator-0.10.5.sha256sum] = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286" | ||
| 476 | SRC_URI[linux-raw-sys-0.4.15.sha256sum] = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" | ||
| 477 | SRC_URI[log-0.4.25.sha256sum] = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" | ||
| 478 | SRC_URI[memchr-2.7.4.sha256sum] = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" | ||
| 479 | SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" | ||
| 480 | SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" | ||
| 481 | SRC_URI[numtoa-0.1.0.sha256sum] = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" | ||
| 482 | SRC_URI[once_cell-1.20.2.sha256sum] = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" | ||
| 483 | SRC_URI[os_str_bytes-6.6.1.sha256sum] = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" | ||
| 484 | SRC_URI[portable-atomic-1.10.0.sha256sum] = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" | ||
| 485 | SRC_URI[prettyplease-0.2.29.sha256sum] = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" | ||
| 486 | SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" | ||
| 487 | SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" | ||
| 488 | SRC_URI[proc-macro2-1.0.93.sha256sum] = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" | ||
| 489 | SRC_URI[quote-1.0.38.sha256sum] = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" | ||
| 490 | SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" | ||
| 491 | SRC_URI[redox_termios-0.1.3.sha256sum] = "20145670ba436b55d91fc92d25e71160fbfbdd57831631c8d7d36377a476f1cb" | ||
| 492 | SRC_URI[regex-1.11.1.sha256sum] = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" | ||
| 493 | SRC_URI[regex-automata-0.4.9.sha256sum] = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" | ||
| 494 | SRC_URI[regex-syntax-0.8.5.sha256sum] = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" | ||
| 495 | SRC_URI[rustc-hash-2.1.0.sha256sum] = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" | ||
| 496 | SRC_URI[rustix-0.38.44.sha256sum] = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" | ||
| 497 | SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" | ||
| 498 | SRC_URI[smbus-pec-1.0.1.sha256sum] = "ca0763a680cd5d72b28f7bfc8a054c117d8841380a6ad4f72f05bd2a34217d3e" | ||
| 499 | SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" | ||
| 500 | SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" | ||
| 501 | SRC_URI[syn-2.0.96.sha256sum] = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" | ||
| 502 | SRC_URI[termcolor-1.4.1.sha256sum] = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" | ||
| 503 | SRC_URI[termion-1.5.6.sha256sum] = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e" | ||
| 504 | SRC_URI[textwrap-0.16.1.sha256sum] = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" | ||
| 505 | SRC_URI[unicode-ident-1.0.15.sha256sum] = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" | ||
| 506 | SRC_URI[version_check-0.9.5.sha256sum] = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" | ||
| 507 | SRC_URI[which-6.0.3.sha256sum] = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" | ||
| 508 | SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" | ||
| 509 | SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" | ||
| 510 | SRC_URI[winapi-util-0.1.9.sha256sum] = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" | ||
| 511 | SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" | ||
| 512 | SRC_URI[windows-sys-0.59.0.sha256sum] = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" | ||
| 513 | SRC_URI[windows-targets-0.52.6.sha256sum] = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" | ||
| 514 | SRC_URI[windows_aarch64_gnullvm-0.52.6.sha256sum] = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" | ||
| 515 | SRC_URI[windows_aarch64_msvc-0.52.6.sha256sum] = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" | ||
| 516 | SRC_URI[windows_i686_gnu-0.52.6.sha256sum] = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" | ||
| 517 | SRC_URI[windows_i686_gnullvm-0.52.6.sha256sum] = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" | ||
| 518 | SRC_URI[windows_i686_msvc-0.52.6.sha256sum] = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" | ||
| 519 | SRC_URI[windows_x86_64_gnu-0.52.6.sha256sum] = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" | ||
| 520 | SRC_URI[windows_x86_64_gnullvm-0.52.6.sha256sum] = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" | ||
| 521 | SRC_URI[windows_x86_64_msvc-0.52.6.sha256sum] = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" | ||
| 522 | SRC_URI[winsafe-0.0.19.sha256sum] = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" | ||
| 523 | SRC_URI[clap-4.5.26.sha256sum] = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" | ||
| 524 | SRC_URI[clap_builder-4.5.26.sha256sum] = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" | ||
| 525 | SRC_URI[cpufeatures-0.2.16.sha256sum] = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" | ||
| 526 | SRC_URI[crunchy-0.2.2.sha256sum] = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" | ||
| 527 | SRC_URI[is-terminal-0.4.13.sha256sum] = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" | ||
| 528 | SRC_URI[rustix-0.38.43.sha256sum] = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" | ||
| 529 | SRC_URI[unicode-ident-1.0.14.sha256sum] = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" | ||
| 530 | SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" | ||
| 531 | SRC_URI[autocfg-1.3.0.sha256sum] = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" | ||
| 532 | SRC_URI[bindgen-0.63.0.sha256sum] = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885" | ||
| 533 | SRC_URI[bitflags-2.6.0.sha256sum] = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" | ||
| 534 | SRC_URI[critical-section-1.1.2.sha256sum] = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" | ||
| 535 | SRC_URI[errno-0.3.9.sha256sum] = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" | ||
| 536 | SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" | ||
| 537 | SRC_URI[home-0.5.9.sha256sum] = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" | ||
| 538 | SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" | ||
| 539 | SRC_URI[libc-0.2.155.sha256sum] = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" | ||
| 540 | SRC_URI[libloading-0.8.5.sha256sum] = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" | ||
| 541 | SRC_URI[libm-0.2.8.sha256sum] = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" | ||
| 542 | SRC_URI[linux-raw-sys-0.4.14.sha256sum] = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" | ||
| 543 | SRC_URI[log-0.4.22.sha256sum] = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" | ||
| 544 | SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" | ||
| 545 | SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" | ||
| 546 | SRC_URI[portable-atomic-1.7.0.sha256sum] = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" | ||
| 547 | SRC_URI[proc-macro2-1.0.86.sha256sum] = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" | ||
| 548 | SRC_URI[quote-1.0.36.sha256sum] = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" | ||
| 549 | SRC_URI[regex-1.10.5.sha256sum] = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" | ||
| 550 | SRC_URI[regex-automata-0.4.7.sha256sum] = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" | ||
| 551 | SRC_URI[regex-syntax-0.8.4.sha256sum] = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" | ||
| 552 | SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" | ||
| 553 | SRC_URI[rustix-0.38.34.sha256sum] = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" | ||
| 554 | SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" | ||
| 555 | SRC_URI[which-4.4.2.sha256sum] = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" | ||
| 556 | SRC_URI[which-6.0.2.sha256sum] = "3d9c5ed668ee1f17edb3b627225343d210006a90bb1e3745ce1f30b1fb115075" | ||
| 557 | SRC_URI[winapi-util-0.1.8.sha256sum] = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" | ||
| 558 | SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" | ||
diff --git a/meta-oe/recipes-devtools/spdm-utils/spdm-utils_0.7.2.bb b/meta-oe/recipes-devtools/spdm-utils/spdm-utils_0.7.2.bb index 5c5022d9c0..6b7c46ed3a 100644 --- a/meta-oe/recipes-devtools/spdm-utils/spdm-utils_0.7.2.bb +++ b/meta-oe/recipes-devtools/spdm-utils/spdm-utils_0.7.2.bb | |||
| @@ -15,7 +15,9 @@ SRC_URI += "git://github.com/westerndigitalcorporation/spdm-utils.git;protocol=h | |||
| 15 | 15 | ||
| 16 | include spdm-utils-crates.inc | 16 | include spdm-utils-crates.inc |
| 17 | 17 | ||
| 18 | SRCREV = "f67ac9e00b79f603ecbbd29928a4ecc3dec5abd5" | 18 | SRCREV = "8805327c9ac0d354c6ef891ccdd0527bbecf80e0" |
| 19 | |||
| 20 | PV .= "+git" | ||
| 19 | 21 | ||
| 20 | DEPENDS += "libspdm udev clang-native bindgen-cli-native pciutils" | 22 | DEPENDS += "libspdm udev clang-native bindgen-cli-native pciutils" |
| 21 | 23 | ||
diff --git a/meta-oe/recipes-devtools/xerces-c/xerces-c_3.3.0.bb b/meta-oe/recipes-devtools/xerces-c/xerces-c_3.3.0.bb index 102e329878..0a3fbf5b93 100644 --- a/meta-oe/recipes-devtools/xerces-c/xerces-c_3.3.0.bb +++ b/meta-oe/recipes-devtools/xerces-c/xerces-c_3.3.0.bb | |||
| @@ -9,7 +9,7 @@ SECTION = "libs" | |||
| 9 | LICENSE = "Apache-2.0" | 9 | LICENSE = "Apache-2.0" |
| 10 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" | 10 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" |
| 11 | 11 | ||
| 12 | CVE_PRODUCT = "xerces-c\+\+" | 12 | CVE_PRODUCT = "xerces-c++" |
| 13 | 13 | ||
| 14 | SRC_URI = "http://archive.apache.org/dist/xerces/c/3/sources/${BP}.tar.bz2 \ | 14 | SRC_URI = "http://archive.apache.org/dist/xerces/c/3/sources/${BP}.tar.bz2 \ |
| 15 | file://0001-aclocal.m4-don-t-use-full-path-of-with_curl-in-xerce.patch \ | 15 | file://0001-aclocal.m4-don-t-use-full-path-of-with_curl-in-xerce.patch \ |
