summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-support')
-rw-r--r--meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch6
-rw-r--r--meta/recipes-support/appstream/appstream/0002-Do-not-build-qt-tests.patch34
-rw-r--r--meta/recipes-support/appstream/appstream/0003-Fix-PACKAGE_PREFIX_DIR-in-qt-cmake-AppStreamQtConfig.patch51
-rw-r--r--meta/recipes-support/appstream/appstream_1.0.5.bb (renamed from meta/recipes-support/appstream/appstream_1.0.2.bb)13
-rw-r--r--meta/recipes-support/apr/apr-util/configure_fixes.patch31
-rw-r--r--meta/recipes-support/apr/apr-util_1.6.3.bb2
-rw-r--r--meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch13
-rw-r--r--meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch9
-rw-r--r--meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch9
-rw-r--r--meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch11
-rw-r--r--meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch50
-rw-r--r--meta/recipes-support/apr/apr/libtoolize_check.patch37
-rw-r--r--meta/recipes-support/apr/apr_1.7.6.bb (renamed from meta/recipes-support/apr/apr_1.7.4.bb)6
-rw-r--r--meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb1
-rw-r--r--meta/recipes-support/aspell/aspell/0001-modules-speller-default-vector_hash-t.hpp-fix-gcc-15.patch42
-rw-r--r--meta/recipes-support/aspell/aspell_0.60.8.1.bb3
-rw-r--r--meta/recipes-support/atk/at-spi2-core_2.56.2.bb (renamed from meta/recipes-support/atk/at-spi2-core_2.52.0.bb)6
-rw-r--r--meta/recipes-support/attr/acl/0001-libmisc-__acl_get_uid-fix-memory-wasting-loop-if-use.patch49
-rw-r--r--meta/recipes-support/attr/acl/0001-test-misc.test-Don-t-mix-stdout-and-stderr.patch35
-rw-r--r--meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch60
-rw-r--r--meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch24
-rw-r--r--meta/recipes-support/attr/acl/run-ptest37
-rw-r--r--meta/recipes-support/attr/acl_2.3.2.bb65
-rw-r--r--meta/recipes-support/attr/attr.inc72
-rw-r--r--meta/recipes-support/attr/attr/run-ptest34
-rw-r--r--meta/recipes-support/attr/attr_2.5.2.bb57
-rw-r--r--meta/recipes-support/bash-completion/bash-completion_2.16.0.bb (renamed from meta/recipes-support/bash-completion/bash-completion_2.13.0.bb)2
-rw-r--r--meta/recipes-support/bmaptool/bmaptool_3.9.0.bb (renamed from meta/recipes-support/bmaptool/bmaptool_git.bb)12
-rw-r--r--meta/recipes-support/boost/boost-1.88.0.inc (renamed from meta/recipes-support/boost/boost-1.84.0.inc)6
-rw-r--r--meta/recipes-support/boost/boost-build-native_1.87.0.bb (renamed from meta/recipes-support/boost/boost-build-native_1.84.0.bb)6
-rw-r--r--meta/recipes-support/boost/boost.inc21
-rw-r--r--meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch6
-rw-r--r--meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch12
-rw-r--r--meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch8
-rw-r--r--meta/recipes-support/boost/boost_1.88.0.bb (renamed from meta/recipes-support/boost/boost_1.84.0.bb)0
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch21
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch20
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates/0002-update-ca-certificates-use-SYSROOT.patch46
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates/0003-update-ca-certificates-use-relative-symlinks-from-ET.patch18
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch50
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates_20250419.bb (renamed from meta/recipes-support/ca-certificates/ca-certificates_20211016.bb)19
-rw-r--r--meta/recipes-support/consolekit/consolekit_0.4.6.bb6
-rw-r--r--meta/recipes-support/curl/curl/disable-tests41
-rw-r--r--meta/recipes-support/curl/curl/environment.d-curl.sh19
-rw-r--r--meta/recipes-support/curl/curl/no-test-timeout.patch2
-rw-r--r--meta/recipes-support/curl/curl/run-ptest10
-rw-r--r--meta/recipes-support/curl/curl_8.14.1.bb (renamed from meta/recipes-support/curl/curl_8.7.1.bb)72
-rw-r--r--meta/recipes-support/db/db_5.3.28.bb6
-rw-r--r--meta/recipes-support/debianutils/debianutils_5.23.1.bb (renamed from meta/recipes-support/debianutils/debianutils_5.17.bb)7
-rw-r--r--meta/recipes-support/diffoscope/diffoscope_298.bb (renamed from meta/recipes-support/diffoscope/diffoscope_260.bb)5
-rw-r--r--meta/recipes-support/dos2unix/dos2unix_7.5.2.bb2
-rw-r--r--meta/recipes-support/enchant/enchant2_2.8.6.bb (renamed from meta/recipes-support/enchant/enchant2_2.6.9.bb)10
-rw-r--r--meta/recipes-support/fribidi/fribidi_1.0.16.bb (renamed from meta/recipes-support/fribidi/fribidi_1.0.13.bb)2
-rw-r--r--meta/recipes-support/gdbm/files/ptest.patch12
-rw-r--r--meta/recipes-support/gdbm/gdbm_1.24.bb (renamed from meta/recipes-support/gdbm/gdbm_1.23.bb)6
-rw-r--r--meta/recipes-support/gmp/gmp/0001-Complete-function-prototype-in-acinclude.m4-for-C23-.patch25
-rw-r--r--meta/recipes-support/gmp/gmp/0001-acinclude.m4-Add-parameter-names-in-prototype-for-g.patch50
-rw-r--r--meta/recipes-support/gmp/gmp_6.3.0.bb4
-rw-r--r--meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb2
-rw-r--r--meta/recipes-support/gnupg/drop-unknown-suffix.inc29
-rw-r--r--meta/recipes-support/gnupg/gnupg/0001-Woverride-init-is-not-needed-with-gcc-9.patch7
-rw-r--r--meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch7
-rw-r--r--meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch3
-rw-r--r--meta/recipes-support/gnupg/gnupg/0004-autogen.sh-fix-find-version-for-beta-checking.patch32
-rw-r--r--meta/recipes-support/gnupg/gnupg/relocate.patch19
-rw-r--r--meta/recipes-support/gnupg/gnupg_2.5.5.bb (renamed from meta/recipes-support/gnupg/gnupg_2.4.5.bb)22
-rw-r--r--meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch4
-rw-r--r--meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch16
-rw-r--r--meta/recipes-support/gnutls/gnutls/arm_eabi.patch2
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.8.9.bb (renamed from meta/recipes-support/gnutls/gnutls_3.8.4.bb)10
-rw-r--r--meta/recipes-support/gnutls/libtasn1_4.20.0.bb (renamed from meta/recipes-support/gnutls/libtasn1_4.19.0.bb)7
-rw-r--r--meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch15
-rw-r--r--meta/recipes-support/gpgme/gpgme/0001-autogen.sh-remove-unknown-in-version.patch14
-rw-r--r--meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch44
-rw-r--r--meta/recipes-support/gpgme/gpgme/0001-posix-io.c-Use-off_t-instead-of-off64_t.patch2
-rw-r--r--meta/recipes-support/gpgme/gpgme/0001-use-closefrom-on-linux-and-glibc-2.34.patch3
-rw-r--r--meta/recipes-support/gpgme/gpgme/0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch7
-rw-r--r--meta/recipes-support/gpgme/gpgme/0003-Correctly-install-python-modules.patch5
-rw-r--r--meta/recipes-support/gpgme/gpgme/0004-python-import.patch34
-rw-r--r--meta/recipes-support/gpgme/gpgme/0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch3
-rw-r--r--meta/recipes-support/gpgme/gpgme/0006-fix-build-path-issue.patch5
-rw-r--r--meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch35
-rw-r--r--meta/recipes-support/gpgme/gpgme_1.24.3.bb (renamed from meta/recipes-support/gpgme/gpgme_1.23.2.bb)22
-rw-r--r--meta/recipes-support/hwdata/hwdata_0.396.bb28
-rw-r--r--meta/recipes-support/icu/icu/fix-install-manx.patch53
-rw-r--r--meta/recipes-support/icu/icu_77-1.bb (renamed from meta/recipes-support/icu/icu_74-2.bb)57
-rw-r--r--meta/recipes-support/iso-codes/iso-codes_4.18.0.bb (renamed from meta/recipes-support/iso-codes/iso-codes_4.16.0.bb)8
-rw-r--r--meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch34
-rw-r--r--meta/recipes-support/libassuan/libassuan_3.0.2.bb (renamed from meta/recipes-support/libassuan/libassuan_2.5.7.bb)4
-rw-r--r--meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb8
-rw-r--r--meta/recipes-support/libbsd/libbsd_0.12.2.bb16
-rw-r--r--meta/recipes-support/libcap-ng/files/0001-Fix-python-path-when-invoking-py-compile-54.patch34
-rw-r--r--meta/recipes-support/libcap-ng/files/fix-issues-with-swig-4-2.patch32
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb29
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng-python_0.8.5.bb17
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng.inc13
-rw-r--r--meta/recipes-support/libcap-ng/libcap-ng_0.8.5.bb (renamed from meta/recipes-support/libcap-ng/libcap-ng_0.8.4.bb)2
-rw-r--r--meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch32
-rw-r--r--meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch11
-rw-r--r--meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch30
-rw-r--r--meta/recipes-support/libcap/libcap_2.76.bb (renamed from meta/recipes-support/libcap/libcap_2.69.bb)33
-rw-r--r--meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch19
-rw-r--r--meta/recipes-support/libcheck/libcheck/subunit.patch43
-rw-r--r--meta/recipes-support/libcheck/libcheck_0.15.2.bb12
-rw-r--r--meta/recipes-support/libdaemon/libdaemon_0.14.bb1
-rw-r--r--meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb14
-rw-r--r--meta/recipes-support/libevdev/libevdev_1.13.4.bb (renamed from meta/recipes-support/libevdev/libevdev_1.13.1.bb)2
-rw-r--r--meta/recipes-support/libevent/libevent_2.1.12.bb2
-rw-r--r--meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch6
-rw-r--r--meta/recipes-support/libexif/libexif_0.6.25.bb (renamed from meta/recipes-support/libexif/libexif_0.6.24.bb)2
-rw-r--r--meta/recipes-support/libffi/libffi/not-win32.patch6
-rw-r--r--meta/recipes-support/libffi/libffi_3.5.1.bb (renamed from meta/recipes-support/libffi/libffi_3.4.6.bb)4
-rw-r--r--meta/recipes-support/libfm/libfm-extra/0001-nls.m4-Take-it-from-gettext-0.15.patch54
-rw-r--r--meta/recipes-support/libfm/libfm-extra_1.3.2.bb8
-rw-r--r--meta/recipes-support/libfm/libfm_1.3.2.bb10
-rw-r--r--meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch17
-rw-r--r--meta/recipes-support/libgcrypt/files/0001-tests-Fix-link-errors-for-t-thread-local.patch34
-rw-r--r--meta/recipes-support/libgcrypt/files/0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch39
-rw-r--r--meta/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch9
-rw-r--r--meta/recipes-support/libgcrypt/files/no-bench-slope.patch18
-rw-r--r--meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch10
-rw-r--r--meta/recipes-support/libgcrypt/libgcrypt_1.11.1.bb (renamed from meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb)17
-rw-r--r--meta/recipes-support/libgit2/libgit2/0001-src-libgit2-CMakeLists.txt-install-cmake-files-into-.patch32
-rw-r--r--meta/recipes-support/libgit2/libgit2_1.9.0.bb (renamed from meta/recipes-support/libgit2/libgit2_1.7.2.bb)14
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch6
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch53
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error_1.55.bb (renamed from meta/recipes-support/libgpg-error/libgpg-error_1.48.bb)7
-rw-r--r--meta/recipes-support/libical/libical/0001-cmake-Do-not-export-CC-into-gir-compiler.patch7
-rw-r--r--meta/recipes-support/libical/libical_3.0.20.bb (renamed from meta/recipes-support/libical/libical_3.0.18.bb)5
-rw-r--r--meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb (renamed from meta/recipes-support/libjitterentropy/libjitterentropy_3.4.1.bb)7
-rw-r--r--meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch22
-rw-r--r--meta/recipes-support/libksba/libksba_1.6.7.bb (renamed from meta/recipes-support/libksba/libksba_1.6.6.bb)4
-rw-r--r--meta/recipes-support/libmpc/libmpc_1.3.1.bb2
-rw-r--r--meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch31
-rw-r--r--meta/recipes-support/libnl/libnl_3.11.0.bb (renamed from meta/recipes-support/libnl/libnl_3.9.0.bb)6
-rw-r--r--meta/recipes-support/libpcre/libpcre2_10.45.bb (renamed from meta/recipes-support/libpcre/libpcre2_10.43.bb)8
-rw-r--r--meta/recipes-support/libpcre/libpcre_8.45.bb9
-rw-r--r--meta/recipes-support/libproxy/libproxy_0.5.10.bb (renamed from meta/recipes-support/libproxy/libproxy_0.5.4.bb)5
-rw-r--r--meta/recipes-support/libseccomp/libseccomp_2.6.0.bb (renamed from meta/recipes-support/libseccomp/libseccomp_2.5.5.bb)6
-rw-r--r--meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch44
-rw-r--r--meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb59
-rw-r--r--meta/recipes-support/libsoup/libsoup_3.6.5.bb (renamed from meta/recipes-support/libsoup/libsoup_3.4.4.bb)4
-rw-r--r--meta/recipes-support/libssh2/libssh2/CVE-2023-48795.patch466
-rw-r--r--meta/recipes-support/libssh2/libssh2_1.11.1.bb (renamed from meta/recipes-support/libssh2/libssh2_1.11.0.bb)7
-rw-r--r--meta/recipes-support/libunistring/libunistring_1.3.bb (renamed from meta/recipes-support/libunistring/libunistring_1.2.bb)2
-rw-r--r--meta/recipes-support/libunwind/libunwind/0001-src-Gtrace-remove-unguarded-print-calls.patch52
-rw-r--r--meta/recipes-support/libunwind/libunwind/0001-tests-Garm64-test-sve-signal-check-that-SVE-is-prese.patch73
-rw-r--r--meta/recipes-support/libunwind/libunwind/0002-coredump-use-glibc-or-musl-register-names-as-appropr.patch (renamed from meta/recipes-support/libunwind/libunwind/mips-coredump-register.patch)23
-rw-r--r--meta/recipes-support/libunwind/libunwind/0005-Handle-musl-on-PPC32.patch88
-rw-r--r--meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch247
-rw-r--r--meta/recipes-support/libunwind/libunwind/libatomic.patch38
-rw-r--r--meta/recipes-support/libunwind/libunwind/malloc.patch255
-rw-r--r--meta/recipes-support/libunwind/libunwind/mips-byte-order.patch2
-rw-r--r--meta/recipes-support/libunwind/libunwind_1.6.2.bb42
-rw-r--r--meta/recipes-support/libunwind/libunwind_1.8.2.bb53
-rw-r--r--meta/recipes-support/liburcu/liburcu_0.15.3.bb (renamed from meta/recipes-support/liburcu/liburcu_0.14.0.bb)11
-rw-r--r--meta/recipes-support/libusb/libusb1_1.0.29.bb (renamed from meta/recipes-support/libusb/libusb1_1.0.27.bb)6
-rw-r--r--meta/recipes-support/libxslt/libxslt_1.1.43.bb (renamed from meta/recipes-support/libxslt/libxslt_1.1.39.bb)6
-rw-r--r--meta/recipes-support/libyaml/libyaml_0.2.5.bb7
-rw-r--r--meta/recipes-support/lz4/lz4/reproducibility.patch33
-rw-r--r--meta/recipes-support/lz4/lz4/run-ptest (renamed from meta/recipes-support/lz4/files/run-ptest)0
-rw-r--r--meta/recipes-support/lz4/lz4_1.10.0.bb (renamed from meta/recipes-support/lz4/lz4_1.9.4.bb)16
-rw-r--r--meta/recipes-support/lzo/lzo_2.10.bb2
-rw-r--r--meta/recipes-support/lzop/lzop_1.04.bb3
-rw-r--r--meta/recipes-support/mpfr/mpfr_4.2.2.bb (renamed from meta/recipes-support/mpfr/mpfr_4.2.1.bb)4
-rw-r--r--meta/recipes-support/nettle/nettle/0001-getopt-Fix-getopt-getenv-signatures-in-declarations.patch44
-rw-r--r--meta/recipes-support/nettle/nettle/Add-target-to-only-build-tests-not-run-them.patch22
-rw-r--r--meta/recipes-support/nettle/nettle/check-header-files-of-openssl-only-if-enable_.patch23
-rw-r--r--meta/recipes-support/nettle/nettle_3.10.1.bb (renamed from meta/recipes-support/nettle/nettle_3.9.1.bb)4
-rw-r--r--meta/recipes-support/nghttp2/nghttp2_1.65.0.bb (renamed from meta/recipes-support/nghttp2/nghttp2_1.61.0.bb)2
-rw-r--r--meta/recipes-support/npth/npth/musl-fix.patch37
-rw-r--r--meta/recipes-support/npth/npth/pkgconfig.patch59
-rw-r--r--meta/recipes-support/npth/npth_1.7.bb25
-rw-r--r--meta/recipes-support/npth/npth_1.8.bb19
-rw-r--r--meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb1
-rw-r--r--meta/recipes-support/numactl/numactl/Fix-the-test-output-format.patch2
-rw-r--r--meta/recipes-support/numactl/numactl_2.0.19.bb (renamed from meta/recipes-support/numactl/numactl_git.bb)7
-rw-r--r--meta/recipes-support/p11-kit/files/fix-parallel-build-failures.patch33
-rw-r--r--meta/recipes-support/p11-kit/p11-kit_0.25.5.bb (renamed from meta/recipes-support/p11-kit/p11-kit_0.25.3.bb)14
-rw-r--r--meta/recipes-support/pinentry/pinentry-1.3.1/gpg-error_pkconf.patch (renamed from meta/recipes-support/pinentry/pinentry-1.2.1/gpg-error_pkconf.patch)56
-rw-r--r--meta/recipes-support/pinentry/pinentry-1.3.1/libassuan_pkgconf.patch (renamed from meta/recipes-support/pinentry/pinentry-1.2.1/libassuan_pkgconf.patch)24
-rw-r--r--meta/recipes-support/pinentry/pinentry_1.3.1.bb (renamed from meta/recipes-support/pinentry/pinentry_1.2.1.bb)6
-rw-r--r--meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb (renamed from meta/recipes-support/ptest-runner/ptest-runner_2.4.3.bb)5
-rw-r--r--meta/recipes-support/re2c/re2c_4.2.bb (renamed from meta/recipes-support/re2c/re2c_3.1.bb)2
-rw-r--r--meta/recipes-support/rng-tools/rng-tools_6.17.bb (renamed from meta/recipes-support/rng-tools/rng-tools_6.16.bb)14
-rw-r--r--meta/recipes-support/sass/libsass/0001-Remove-version.h-from-source-directory.patch87
-rw-r--r--meta/recipes-support/sass/libsass_3.6.6.bb13
-rw-r--r--meta/recipes-support/sass/sassc/0001-Remove-sassc_version.h-from-source-directory.patch61
-rw-r--r--meta/recipes-support/sass/sassc_3.6.2.bb17
-rw-r--r--meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch2
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb4
-rw-r--r--meta/recipes-support/sqlite/sqlite3.inc8
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.45.1.bb8
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.48.0.bb8
-rw-r--r--meta/recipes-support/taglib/taglib_2.1.bb (renamed from meta/recipes-support/taglib/taglib_2.0.bb)2
-rw-r--r--meta/recipes-support/user-creation/xuser-account_0.1.bb4
-rw-r--r--meta/recipes-support/utfcpp/utfcpp_4.0.6.bb (renamed from meta/recipes-support/utfcpp/utfcpp_4.0.5.bb)4
-rw-r--r--meta/recipes-support/vim/files/no-path-adjust.patch2
-rw-r--r--meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch39
-rw-r--r--meta/recipes-support/vim/vim.inc8
-rw-r--r--meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch11
-rw-r--r--meta/recipes-support/vte/vte/0002-lib-Typo-fix.patch25
-rw-r--r--meta/recipes-support/vte/vte/0004-fast_float-Add-single-header-library-for-from_char-i.patch3922
-rw-r--r--meta/recipes-support/vte/vte/0005-color-parser-Use-fast_float-implementation-for-from_.patch102
-rw-r--r--meta/recipes-support/vte/vte_0.78.2.bb (renamed from meta/recipes-support/vte/vte_0.74.2.bb)15
-rw-r--r--meta/recipes-support/xxhash/xxhash_0.8.3.bb (renamed from meta/recipes-support/xxhash/xxhash_0.8.2.bb)4
206 files changed, 6288 insertions, 2624 deletions
diff --git a/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch b/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch
index bc811d67b0..03ac5eb05b 100644
--- a/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch
+++ b/meta/recipes-support/appstream/appstream/0001-remove-hardcoded-path.patch
@@ -1,4 +1,4 @@
1From fe9ebb8c0fa7b84a9c5c667386b8fbb3baea2fad Mon Sep 17 00:00:00 2001 1From 7372848f22d7edc01e40b0533047b34f41f6cf71 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de> 2From: Markus Volk <f_l_k@t-online.de>
3Date: Mon, 12 Dec 2022 15:42:42 +0100 3Date: Mon, 12 Dec 2022 15:42:42 +0100
4Subject: [PATCH] remove hardcoded path 4Subject: [PATCH] remove hardcoded path
@@ -14,10 +14,10 @@ Upstream-Status: Inappropriate [oe-specific]
14 1 file changed, 2 insertions(+), 2 deletions(-) 14 1 file changed, 2 insertions(+), 2 deletions(-)
15 15
16diff --git a/meson.build b/meson.build 16diff --git a/meson.build b/meson.build
17index fa171d5..79d5168 100644 17index 7e89ab0..c34ea74 100644
18--- a/meson.build 18--- a/meson.build
19+++ b/meson.build 19+++ b/meson.build
20@@ -185,10 +185,10 @@ endif 20@@ -194,10 +194,10 @@ endif
21 stemmer_inc_dirs = include_directories() 21 stemmer_inc_dirs = include_directories()
22 if get_option('stemming') 22 if get_option('stemming')
23 stemmer_lib = cc.find_library('stemmer', required: true) 23 stemmer_lib = cc.find_library('stemmer', required: true)
diff --git a/meta/recipes-support/appstream/appstream/0002-Do-not-build-qt-tests.patch b/meta/recipes-support/appstream/appstream/0002-Do-not-build-qt-tests.patch
new file mode 100644
index 0000000000..71c9aadbc9
--- /dev/null
+++ b/meta/recipes-support/appstream/appstream/0002-Do-not-build-qt-tests.patch
@@ -0,0 +1,34 @@
1From 43afdff090c4cbb2d3b4025a38b25a718c8f16b5 Mon Sep 17 00:00:00 2001
2From: Marc Ferland <marc.ferland@sonatest.com>
3Date: Fri, 26 Jul 2024 15:41:00 -0400
4Subject: [PATCH] Do not build qt/tests
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Fixes the following build failure:
10
11| In file included from /home/marc/mnt/yocto-kde/build/tmp/work/x86_64-linux/appstream-native/1.0.3/recipe-sysroot-native/usr/include/QtTest/QtTest:11,
12| from ../AppStream-1.0.3/qt/tests/asqt-pool-test.cpp:21:
13| ../AppStream-1.0.3/qt/tests/asqt-pool-test.cpp: In function ‘int main(int, char**)’:
14| ../AppStream-1.0.3/qt/tests/asqt-pool-test.cpp:117:1: error: expected primary-expression before ‘)’ token
15| 117 | QTEST_MAIN(PoolReadTest)
16| | ^~~~~~~~~~
17
18Upstream-Status: Inappropriate [oe-specific]
19
20Signed-off-by: Marc Ferland <marc.ferland@sonatest.com>
21---
22 qt/meson.build | 2 --
23 1 file changed, 2 deletions(-)
24
25diff --git a/qt/meson.build b/qt/meson.build
26index 7d9ed7d..e319425 100644
27--- a/qt/meson.build
28+++ b/qt/meson.build
29@@ -150,5 +150,3 @@ install_data (
30
31 # end of Qt version loop
32 endforeach
33-
34-subdir('tests/')
diff --git a/meta/recipes-support/appstream/appstream/0003-Fix-PACKAGE_PREFIX_DIR-in-qt-cmake-AppStreamQtConfig.patch b/meta/recipes-support/appstream/appstream/0003-Fix-PACKAGE_PREFIX_DIR-in-qt-cmake-AppStreamQtConfig.patch
new file mode 100644
index 0000000000..e522a92e14
--- /dev/null
+++ b/meta/recipes-support/appstream/appstream/0003-Fix-PACKAGE_PREFIX_DIR-in-qt-cmake-AppStreamQtConfig.patch
@@ -0,0 +1,51 @@
1From c36b6226479a20ebd910f355deddb9d5c7571213 Mon Sep 17 00:00:00 2001
2From: Marc Ferland <marc.ferland@sonatest.com>
3Date: Mon, 29 Jul 2024 09:35:51 -0400
4Subject: [PATCH] Fix PACKAGE_PREFIX_DIR in qt/cmake/AppStreamQtConfig.cmake.in
5
6PACKAGE_PREFIX_DIR points to an invalid directory. This breaks
7librairies linking to appstream-qt.
8
9For example, when building the 'discover' package from the meta-kde
10layer we get the following build error:
11
12| CMake Error in libdiscover/CMakeLists.txt:
13| Imported target "AppStreamQt" includes non-existent path
14|
15| "/path/to/build/tmp/work/core2-64-poky-linux/discover/6.1.3/recipe-sysroot/include/"
16|
17| in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
18|
19| * The path was deleted, renamed, or moved to another location.
20|
21| * An install or uninstall procedure did not complete successfully.
22|
23| * The installation package was faulty and references files it does not
24| provide.
25
26The path above should've been:
27
28 /path/to/build/tmp/work/core2-64-poky-linux/discover/6.1.3/recipe-sysroot/usr/include/
29
30instead of:
31
32 /path/to/build/tmp/work/core2-64-poky-linux/discover/6.1.3/recipe-sysroot/include/
33
34Upstream-Status: Inappropriate [upstream ticket https://github.com/ximion/appstream/issues/643]
35
36Signed-off-by: Marc Ferland <marc.ferland@sonatest.com>
37---
38 qt/cmake/AppStreamQtConfig.cmake.in | 2 +-
39 1 file changed, 1 insertion(+), 1 deletion(-)
40
41diff --git a/qt/cmake/AppStreamQtConfig.cmake.in b/qt/cmake/AppStreamQtConfig.cmake.in
42index 63df65f2..5ab2d0ec 100644
43--- a/qt/cmake/AppStreamQtConfig.cmake.in
44+++ b/qt/cmake/AppStreamQtConfig.cmake.in
45@@ -1,5 +1,5 @@
46
47-get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../../" ABSOLUTE)
48+get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
49
50 # Use original install prefix when loaded through a "/usr move"
51 # cross-prefix symbolic link such as /lib -> /usr/lib.
diff --git a/meta/recipes-support/appstream/appstream_1.0.2.bb b/meta/recipes-support/appstream/appstream_1.0.5.bb
index 7eb12a04c5..bb293f76e2 100644
--- a/meta/recipes-support/appstream/appstream_1.0.2.bb
+++ b/meta/recipes-support/appstream/appstream_1.0.5.bb
@@ -27,18 +27,27 @@ GIDOCGEN_MESON_OPTION = "apidocs"
27SRC_URI = " \ 27SRC_URI = " \
28 https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz \ 28 https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz \
29 file://0001-remove-hardcoded-path.patch \ 29 file://0001-remove-hardcoded-path.patch \
30 file://0002-Do-not-build-qt-tests.patch \
31 file://0003-Fix-PACKAGE_PREFIX_DIR-in-qt-cmake-AppStreamQtConfig.patch \
30" 32"
31SRC_URI[sha256sum] = "1a5148ca97dcbf5eb6e9c380278bb0d20938569292ea8652df1b3cac8bd2736b" 33SRC_URI[sha256sum] = "ce0ed29e89abd5f0cf790ea87d792f1967c3413060beb30e63a979578d975121"
32 34
33S = "${WORKDIR}/AppStream-${PV}" 35S = "${UNPACKDIR}/AppStream-${PV}"
34 36
35PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" 37PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
36 38
37PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" 39PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
38PACKAGECONFIG[stemming] = "-Dstemming=true,-Dstemming=false,libstemmer" 40PACKAGECONFIG[stemming] = "-Dstemming=true,-Dstemming=false,libstemmer"
41PACKAGECONFIG[qt6] = "-Dqt=true,-Dqt=false,qtbase"
39 42
40FILES:${PN} += "${datadir}" 43FILES:${PN} += "${datadir}"
41 44
42EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}" 45EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}"
43 46
44BBCLASSEXTEND = "native" 47BBCLASSEXTEND = "native"
48
49# Fix meson not finding the Qt build tools in cross-compilation
50# setups. See: https://github.com/mesonbuild/meson/issues/13018
51do_configure:prepend:class-target() {
52 export PATH=${STAGING_DIR_NATIVE}${libexecdir}:$PATH
53}
diff --git a/meta/recipes-support/apr/apr-util/configure_fixes.patch b/meta/recipes-support/apr/apr-util/configure_fixes.patch
deleted file mode 100644
index 91e244ce2c..0000000000
--- a/meta/recipes-support/apr/apr-util/configure_fixes.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1Upstream-Status: Inappropriate [configuration]
2
3Index: apr-util-1.4.1/configure.in
4===================================================================
5--- apr-util-1.4.1.orig/configure.in 2009-12-18 03:15:19.000000000 +0800
6+++ apr-util-1.4.1/configure.in 2011-12-30 13:32:07.000000000 +0800
7@@ -8,15 +8,15 @@
8 AC_CONFIG_HEADER(include/private/apu_config.h)
9 AC_CONFIG_AUX_DIR(build)
10
11-sinclude(build/apu-conf.m4)
12-sinclude(build/apu-iconv.m4)
13-sinclude(build/apu-hints.m4)
14-sinclude(build/apr_common.m4)
15-sinclude(build/find_apr.m4)
16-sinclude(build/crypto.m4)
17-sinclude(build/dbm.m4)
18-sinclude(build/dbd.m4)
19-sinclude(build/dso.m4)
20+#sinclude(build/apu-conf.m4)
21+#sinclude(build/apu-iconv.m4)
22+#sinclude(build/apu-hints.m4)
23+#sinclude(build/apr_common.m4)
24+#sinclude(build/find_apr.m4)
25+#sinclude(build/crypto.m4)
26+#sinclude(build/dbm.m4)
27+#sinclude(build/dbd.m4)
28+#sinclude(build/dso.m4)
29
30 dnl Generate ./config.nice for reproducing runs of configure
31 dnl
diff --git a/meta/recipes-support/apr/apr-util_1.6.3.bb b/meta/recipes-support/apr/apr-util_1.6.3.bb
index 1371e262dd..b5e3d2fc8a 100644
--- a/meta/recipes-support/apr/apr-util_1.6.3.bb
+++ b/meta/recipes-support/apr/apr-util_1.6.3.bb
@@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=158aa0b1efe0c12f23d4b007ddb9a5db \
11 11
12SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.gz \ 12SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.gz \
13 file://configfix.patch \ 13 file://configfix.patch \
14 file://configure_fixes.patch \
15 file://0001-test_transformation-Check-if-transform-is-supported-.patch \ 14 file://0001-test_transformation-Check-if-transform-is-supported-.patch \
16 file://run-ptest \ 15 file://run-ptest \
17 " 16 "
@@ -24,7 +23,6 @@ EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
24 --without-sqlite2 \ 23 --without-sqlite2 \
25 --with-expat=${STAGING_DIR_HOST}${prefix}" 24 --with-expat=${STAGING_DIR_HOST}${prefix}"
26 25
27
28inherit autotools lib_package binconfig multilib_script 26inherit autotools lib_package binconfig multilib_script
29 27
30MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apu-1-config" 28MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/apu-1-config"
diff --git a/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch b/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch
index a274f3a16e..72a2ab777e 100644
--- a/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch
+++ b/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch
@@ -1,4 +1,4 @@
1From 225abf37cd0b49960664b59f08e515a4c4ea5ad0 Mon Sep 17 00:00:00 2001 1From dc02ac2f43e47178a9b1f35ef6906d7835dc121b Mon Sep 17 00:00:00 2001
2From: Jeremy Puhlman <jpuhlman@mvista.com> 2From: Jeremy Puhlman <jpuhlman@mvista.com>
3Date: Thu, 26 Mar 2020 18:30:36 +0000 3Date: Thu, 26 Mar 2020 18:30:36 +0000
4Subject: [PATCH] Add option to disable timed dependant tests 4Subject: [PATCH] Add option to disable timed dependant tests
@@ -7,9 +7,8 @@ The disabled tests rely on timing to pass correctly. On a virtualized
7system under heavy load, these tests randomly fail because they miss 7system under heavy load, these tests randomly fail because they miss
8a timer or other timing related issues. 8a timer or other timing related issues.
9 9
10Upstream-Status: Pending 10Upstream-Status: Submitted [https://github.com/apache/apr/pull/54]
11Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> 11Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
12
13--- 12---
14 configure.in | 6 ++++++ 13 configure.in | 6 ++++++
15 include/apr.h.in | 1 + 14 include/apr.h.in | 1 +
@@ -17,10 +16,10 @@ Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
17 3 files changed, 9 insertions(+), 2 deletions(-) 16 3 files changed, 9 insertions(+), 2 deletions(-)
18 17
19diff --git a/configure.in b/configure.in 18diff --git a/configure.in b/configure.in
20index bfd488b..3663220 100644 19index 0ce20ab..3d42953 100644
21--- a/configure.in 20--- a/configure.in
22+++ b/configure.in 21+++ b/configure.in
23@@ -3023,6 +3023,12 @@ AC_ARG_ENABLE(timedlocks, 22@@ -3119,6 +3119,12 @@ AC_ARG_ENABLE(timedlocks,
24 ) 23 )
25 AC_SUBST(apr_has_timedlocks) 24 AC_SUBST(apr_has_timedlocks)
26 25
@@ -34,10 +33,10 @@ index bfd488b..3663220 100644
34 # so getaddrinfo/gai_strerror are not used. 33 # so getaddrinfo/gai_strerror are not used.
35 if test $have_ipv6 = 0; then 34 if test $have_ipv6 = 0; then
36diff --git a/include/apr.h.in b/include/apr.h.in 35diff --git a/include/apr.h.in b/include/apr.h.in
37index ee99def..c46a5f4 100644 36index 637ed38..e7cb9b9 100644
38--- a/include/apr.h.in 37--- a/include/apr.h.in
39+++ b/include/apr.h.in 38+++ b/include/apr.h.in
40@@ -298,6 +298,7 @@ extern "C" { 39@@ -307,6 +307,7 @@ extern "C" {
41 #define APR_HAS_XTHREAD_FILES @apr_has_xthread_files@ 40 #define APR_HAS_XTHREAD_FILES @apr_has_xthread_files@
42 #define APR_HAS_OS_UUID @osuuid@ 41 #define APR_HAS_OS_UUID @osuuid@
43 #define APR_HAS_TIMEDLOCKS @apr_has_timedlocks@ 42 #define APR_HAS_TIMEDLOCKS @apr_has_timedlocks@
diff --git a/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch b/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch
index a78b16284f..7e22270b88 100644
--- a/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch
+++ b/meta/recipes-support/apr/apr/0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch
@@ -1,4 +1,4 @@
1From 316b81c462f065927d7fec56aadd5c8cb94d1cf0 Mon Sep 17 00:00:00 2001 1From 84990901ba642238779c74a003c1f5e572ab8d38 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 26 Aug 2022 00:28:08 -0700 3Date: Fri, 26 Aug 2022 00:28:08 -0700
4Subject: [PATCH] configure: Remove runtime test for mmap that can map 4Subject: [PATCH] configure: Remove runtime test for mmap that can map
@@ -10,16 +10,15 @@ mutexes
10 10
11Upstream-Status: Inappropriate [Cross-compile specific] 11Upstream-Status: Inappropriate [Cross-compile specific]
12Signed-off-by: Khem Raj <raj.khem@gmail.com> 12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13
14--- 13---
15 configure.in | 30 ------------------------------ 14 configure.in | 30 ------------------------------
16 1 file changed, 30 deletions(-) 15 1 file changed, 30 deletions(-)
17 16
18diff --git a/configure.in b/configure.in 17diff --git a/configure.in b/configure.in
19index 3663220..dce9789 100644 18index 3d42953..7e43b0f 100644
20--- a/configure.in 19--- a/configure.in
21+++ b/configure.in 20+++ b/configure.in
22@@ -1303,36 +1303,6 @@ AC_CHECK_FUNCS([mmap munmap shm_open shm_unlink shmget shmat shmdt shmctl \ 21@@ -1391,36 +1391,6 @@ AC_CHECK_FUNCS([mmap munmap shm_open shm_unlink shmget shmat shmdt shmctl \
23 APR_CHECK_DEFINE(MAP_ANON, sys/mman.h) 22 APR_CHECK_DEFINE(MAP_ANON, sys/mman.h)
24 AC_CHECK_FILE(/dev/zero) 23 AC_CHECK_FILE(/dev/zero)
25 24
@@ -34,7 +33,7 @@ index 3663220..dce9789 100644
34-#ifdef HAVE_SYS_MMAN_H 33-#ifdef HAVE_SYS_MMAN_H
35-#include <sys/mman.h> 34-#include <sys/mman.h>
36-#endif 35-#endif
37- int main() 36- int main(int argc, const char *argv[])
38- { 37- {
39- int fd; 38- int fd;
40- void *m; 39- void *m;
diff --git a/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch b/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch
index d63423f3a1..2a9cfb0f3d 100644
--- a/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch
+++ b/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch
@@ -1,4 +1,4 @@
1From 689a8db96a6d1e1cae9cbfb35d05ac82140a6555 Mon Sep 17 00:00:00 2001 1From 5050645e626a8ee91a7f45070ef2d3911e1870d7 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Tue, 30 Jan 2018 09:39:06 +0800 3Date: Tue, 30 Jan 2018 09:39:06 +0800
4Subject: [PATCH] apr: Remove workdir path references from installed apr files 4Subject: [PATCH] apr: Remove workdir path references from installed apr files
@@ -13,16 +13,15 @@ packages at target run time, the workdir path caused confusion.
13Rebase to 1.6.3 13Rebase to 1.6.3
14 14
15Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 15Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
16
17--- 16---
18 apr-config.in | 32 ++------------------------------ 17 apr-config.in | 32 ++------------------------------
19 1 file changed, 2 insertions(+), 30 deletions(-) 18 1 file changed, 2 insertions(+), 30 deletions(-)
20 19
21diff --git a/apr-config.in b/apr-config.in 20diff --git a/apr-config.in b/apr-config.in
22index bed47ca..47874e5 100644 21index 626d3b0..42be269 100644
23--- a/apr-config.in 22--- a/apr-config.in
24+++ b/apr-config.in 23+++ b/apr-config.in
25@@ -164,16 +164,7 @@ while test $# -gt 0; do 24@@ -179,16 +179,7 @@ while test $# -gt 0; do
26 flags="$flags $LDFLAGS" 25 flags="$flags $LDFLAGS"
27 ;; 26 ;;
28 --includes) 27 --includes)
@@ -39,7 +38,7 @@ index bed47ca..47874e5 100644
39 ;; 38 ;;
40 --srcdir) 39 --srcdir)
41 echo $APR_SOURCE_DIR 40 echo $APR_SOURCE_DIR
42@@ -197,33 +188,14 @@ while test $# -gt 0; do 41@@ -212,33 +203,14 @@ while test $# -gt 0; do
43 exit 0 42 exit 0
44 ;; 43 ;;
45 --link-ld) 44 --link-ld)
diff --git a/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch b/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch
index 02634e6fde..bd8e7786ba 100644
--- a/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch
+++ b/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch
@@ -1,7 +1,7 @@
1From 2e66cece0c3adff92733332111204ddc1d730a07 Mon Sep 17 00:00:00 2001 1From 2f5db35d6c6b4d40e04591c98d297ef764777aa3 Mon Sep 17 00:00:00 2001
2From: Robert Yang <liezhi.yang@windriver.com> 2From: Robert Yang <liezhi.yang@windriver.com>
3Date: Thu, 19 Nov 2015 18:25:38 -0800 3Date: Thu, 19 Nov 2015 18:25:38 -0800
4Subject: [PATCH 5/7] configure.in: fix LTFLAGS to make it work with ccache 4Subject: [PATCH] configure.in: fix LTFLAGS to make it work with ccache
5 5
6When ccache is enabled, libtool requires --tag=CC when use ccache, 6When ccache is enabled, libtool requires --tag=CC when use ccache,
7otherwise when building apr-util with ccache enabled: 7otherwise when building apr-util with ccache enabled:
@@ -19,10 +19,10 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
19 1 file changed, 1 insertion(+), 1 deletion(-) 19 1 file changed, 1 insertion(+), 1 deletion(-)
20 20
21diff --git a/configure.in b/configure.in 21diff --git a/configure.in b/configure.in
22index 361120f..3b10422 100644 22index b0457e2..0ce20ab 100644
23--- a/configure.in 23--- a/configure.in
24+++ b/configure.in 24+++ b/configure.in
25@@ -249,7 +249,7 @@ case $host in 25@@ -266,7 +266,7 @@ case $host in
26 ;; 26 ;;
27 *) 27 *)
28 if test "x$LTFLAGS" = "x"; then 28 if test "x$LTFLAGS" = "x"; then
@@ -31,6 +31,3 @@ index 361120f..3b10422 100644
31 fi 31 fi
32 if test "$experimental_libtool" = "yes"; then 32 if test "$experimental_libtool" = "yes"; then
33 # Use a custom-made libtool replacement 33 # Use a custom-made libtool replacement
34--
351.8.3.1
36
diff --git a/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch b/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch
deleted file mode 100644
index 8760b0140c..0000000000
--- a/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1From c6afc4a4a766478cb6aa6b43a50051881b6318d7 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Fri, 3 Mar 2017 22:24:17 +0100
4Subject: [PATCH 7/7] explicitly link libapr against phtread to make gold happy
5 on test
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_init'
11| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_settype'
12| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_destroy'
13| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutex_trylock'
14| ../.libs/libapr-1.so: error: undefined reference to 'pthread_attr_setstacksize'
15| ../.libs/libapr-1.so: error: undefined reference to 'pthread_create'
16| ../.libs/libapr-1.so: error: undefined reference to 'pthread_join'
17| ../.libs/libapr-1.so: error: undefined reference to 'pthread_detach'
18| ../.libs/libapr-1.so: error: undefined reference to 'pthread_sigmask'
19| ../.libs/libapr-1.so: error: undefined reference to 'pthread_once'
20| ../.libs/libapr-1.so: error: undefined reference to 'pthread_key_create'
21| ../.libs/libapr-1.so: error: undefined reference to 'pthread_getspecific'
22| ../.libs/libapr-1.so: error: undefined reference to 'pthread_key_delete'
23| ../.libs/libapr-1.so: error: undefined reference to 'pthread_setspecific'
24| collect2: error: ld returned 1 exit status
25| Makefile:114: recipe for target 'globalmutexchild' failed
26| make[1]: *** [globalmutexchild] Error 1
27| make[1]: Leaving directory '/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/apr/1.5.2-r0/apr-1.5.2/test'
28
29Upstream-Status: Pending
30
31Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
32---
33 configure.in | 1 +
34 1 file changed, 1 insertion(+)
35
36diff --git a/configure.in b/configure.in
37index a227e72..cbc0f90 100644
38--- a/configure.in
39+++ b/configure.in
40@@ -784,6 +784,7 @@ else
41 APR_PTHREADS_CHECK_RESTORE ] )
42 fi
43 if test "$pthreadh" = "1"; then
44+ APR_ADDTO(LIBS,[-lpthread])
45 APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS
46 APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG
47 APR_CHECK_PTHREAD_RECURSIVE_MUTEX
48--
491.8.3.1
50
diff --git a/meta/recipes-support/apr/apr/libtoolize_check.patch b/meta/recipes-support/apr/apr/libtoolize_check.patch
deleted file mode 100644
index 80ce43caa4..0000000000
--- a/meta/recipes-support/apr/apr/libtoolize_check.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 17835709bc55657b7af1f7c99b3f572b819cf97e Mon Sep 17 00:00:00 2001
2From: Helmut Grohne <helmut@subdivi.de>
3Date: Tue, 7 Feb 2023 07:04:00 +0000
4Subject: [PATCH] check for libtoolize rather than libtool
5
6libtool is now in package libtool-bin, but apr only needs libtoolize.
7
8Upstream-Status: Pending [ from debian: https://sources.debian.org/data/main/a/apr/1.6.5-1/debian/patches/libtoolize_check.patch ]
9
10Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
11
12---
13 build/buildcheck.sh | 10 ++++------
14 1 file changed, 4 insertions(+), 6 deletions(-)
15
16diff --git a/build/buildcheck.sh b/build/buildcheck.sh
17index 44921b5..08bc8a8 100755
18--- a/build/buildcheck.sh
19+++ b/build/buildcheck.sh
20@@ -39,13 +39,11 @@ fi
21 # ltmain.sh (GNU libtool 1.1361 2004/01/02 23:10:52) 1.5a
22 # output is multiline from 1.5 onwards
23
24-# Require libtool 1.4 or newer
25-if test -z "$libtool"; then
26- libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14`
27-fi
28-lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'`
29+# Require libtoolize 1.4 or newer
30+libtoolize=`build/PrintPath glibtoolize1 glibtoolize libtoolize libtoolize15 libtoolize14`
31+lt_pversion=`$libtoolize --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'`
32 if test -z "$lt_pversion"; then
33- echo "buildconf: libtool not found."
34+ echo "buildconf: libtoolize not found."
35 echo " You need libtool version 1.4 or newer installed"
36 echo " to build APR from SVN."
37 res=1
diff --git a/meta/recipes-support/apr/apr_1.7.4.bb b/meta/recipes-support/apr/apr_1.7.6.bb
index d322629b66..13fa5daa3c 100644
--- a/meta/recipes-support/apr/apr_1.7.4.bb
+++ b/meta/recipes-support/apr/apr_1.7.6.bb
@@ -18,15 +18,13 @@ SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \
18 file://0002-apr-Remove-workdir-path-references-from-installed-ap.patch \ 18 file://0002-apr-Remove-workdir-path-references-from-installed-ap.patch \
19 file://0004-Fix-packet-discards-HTTP-redirect.patch \ 19 file://0004-Fix-packet-discards-HTTP-redirect.patch \
20 file://0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch \ 20 file://0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch \
21 file://0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch \
22 file://libtoolize_check.patch \
23 file://0001-Add-option-to-disable-timed-dependant-tests.patch \ 21 file://0001-Add-option-to-disable-timed-dependant-tests.patch \
24 file://0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch \ 22 file://0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch \
25 file://autoconf-2.73.patch \ 23 file://autoconf-2.73.patch \
26 file://0001-dso-Check-for-NULL-handle-in-apr_dso_sym.patch \ 24 file://0001-dso-Check-for-NULL-handle-in-apr_dso_sym.patch \
27 " 25 "
28 26
29SRC_URI[sha256sum] = "fc648de983f3a2a6c9e78dea1f180639bd2fad6c06d556d4367a701fe5c35577" 27SRC_URI[sha256sum] = "49030d92d2575da735791b496dc322f3ce5cff9494779ba8cc28c7f46c5deb32"
30 28
31inherit autotools-brokensep lib_package binconfig multilib_header ptest multilib_script 29inherit autotools-brokensep lib_package binconfig multilib_header ptest multilib_script
32 30
@@ -136,4 +134,4 @@ do_install_ptest() {
136 cp ${S}/test/tryread $t/ 134 cp ${S}/test/tryread $t/
137} 135}
138 136
139export CONFIG_SHELL="/bin/bash" 137export CONFIG_SHELL = "/bin/bash"
diff --git a/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb b/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb
index 00b6036502..74f53de6d7 100644
--- a/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb
+++ b/meta/recipes-support/argp-standalone/argp-standalone_1.4.1.bb
@@ -12,7 +12,6 @@ SRC_URI = "git://github.com/ericonr/argp-standalone;branch=master;protocol=https
12 file://out_of_tree_build.patch \ 12 file://out_of_tree_build.patch \
13 " 13 "
14SRCREV = "e5fe9ad9e83e6765cf8fa787f903d4c6792338b5" 14SRCREV = "e5fe9ad9e83e6765cf8fa787f903d4c6792338b5"
15S = "${WORKDIR}/git"
16 15
17inherit autotools 16inherit autotools
18 17
diff --git a/meta/recipes-support/aspell/aspell/0001-modules-speller-default-vector_hash-t.hpp-fix-gcc-15.patch b/meta/recipes-support/aspell/aspell/0001-modules-speller-default-vector_hash-t.hpp-fix-gcc-15.patch
new file mode 100644
index 0000000000..4045e8e412
--- /dev/null
+++ b/meta/recipes-support/aspell/aspell/0001-modules-speller-default-vector_hash-t.hpp-fix-gcc-15.patch
@@ -0,0 +1,42 @@
1From d45bf96b0a3556acb2c83069a78eaaac973d31b4 Mon Sep 17 00:00:00 2001
2From: Sergei Trofimovich <slyich@gmail.com>
3Date: Sun, 21 Jul 2024 22:01:50 +0100
4Subject: [PATCH] modules/speller/default/vector_hash-t.hpp: fix gcc-15 build
5
6Uncoming `gcc-15` added extra checks for template instantiation that is
7guaranteed to fail in
8 https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=313afcfdabeab3e6705ac0bd1273627075be0023
9
10As a result `aspell` build now fails as:
11
12 In file included from modules/speller/default/readonly_ws.cpp:51:
13 modules/speller/default/vector_hash-t.hpp: In member function 'void aspeller::VectorHashTable<Parms>::recalc_size()':
14 modules/speller/default/vector_hash-t.hpp:186:43: error: 'class aspeller::VectorHashTable<Parms>' has no member named 'e'
15 186 | for (iterator i = begin(); i != this->e; ++i, ++this->_size);
16 | ^
17 modules/speller/default/vector_hash-t.hpp:186:59: error: 'class aspeller::VectorHashTable<Parms>' has no member named '_size'; did you mean 'size'?
18 186 | for (iterator i = begin(); i != this->e; ++i, ++this->_size);
19 | ^~~~~
20 | size
21
22It looks like `_size` is `size_` mis-spelling and `e` was not introduced
23here.
24Upstream-Status: Backport [https://github.com/GNUAspell/aspell/commit/ee6cbb12ff36a1e6618d7388a78dd4e0a2b44041]
25Signed-off-by: Khem Raj <raj.khem@gmail.com>
26---
27 modules/speller/default/vector_hash-t.hpp | 2 +-
28 1 file changed, 1 insertion(+), 1 deletion(-)
29
30diff --git a/modules/speller/default/vector_hash-t.hpp b/modules/speller/default/vector_hash-t.hpp
31index 969a80c..e4420b4 100644
32--- a/modules/speller/default/vector_hash-t.hpp
33+++ b/modules/speller/default/vector_hash-t.hpp
34@@ -183,7 +183,7 @@ namespace aspeller {
35 template<class Parms>
36 void VectorHashTable<Parms>::recalc_size() {
37 size_ = 0;
38- for (iterator i = begin(); i != this->e; ++i, ++this->_size);
39+ for (iterator i = begin(), e = end(); i != e; ++i, ++size_);
40 }
41
42 }
diff --git a/meta/recipes-support/aspell/aspell_0.60.8.1.bb b/meta/recipes-support/aspell/aspell_0.60.8.1.bb
index 0ea9b063e0..43940b1e1b 100644
--- a/meta/recipes-support/aspell/aspell_0.60.8.1.bb
+++ b/meta/recipes-support/aspell/aspell_0.60.8.1.bb
@@ -13,7 +13,8 @@ HOMEPAGE = "http://aspell.net/"
13LICENSE = "LGPL-2.0-only | LGPL-2.1-only" 13LICENSE = "LGPL-2.0-only | LGPL-2.1-only"
14LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" 14LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
15 15
16SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz" 16SRC_URI = "${GNU_MIRROR}/aspell/aspell-${PV}.tar.gz \
17 file://0001-modules-speller-default-vector_hash-t.hpp-fix-gcc-15.patch"
17SRC_URI[sha256sum] = "d6da12b34d42d457fa604e435ad484a74b2effcd120ff40acd6bb3fb2887d21b" 18SRC_URI[sha256sum] = "d6da12b34d42d457fa604e435ad484a74b2effcd120ff40acd6bb3fb2887d21b"
18 19
19PACKAGECONFIG ??= "" 20PACKAGECONFIG ??= ""
diff --git a/meta/recipes-support/atk/at-spi2-core_2.52.0.bb b/meta/recipes-support/atk/at-spi2-core_2.56.2.bb
index cf221e0389..59eed4b5ab 100644
--- a/meta/recipes-support/atk/at-spi2-core_2.52.0.bb
+++ b/meta/recipes-support/atk/at-spi2-core_2.56.2.bb
@@ -7,11 +7,13 @@ BUGTRACKER = "http://bugzilla.gnome.org/"
7LICENSE = "LGPL-2.1-or-later" 7LICENSE = "LGPL-2.1-or-later"
8LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 8LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
9 9
10CVE_PRODUCT += "at-spi2-atk"
11
10MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" 12MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
11 13
12SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz" 14SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
13 15
14SRC_URI[sha256sum] = "0ac3fc8320c8d01fa147c272ba7fa03806389c6b03d3c406d0823e30e35ff5ab" 16SRC_URI[sha256sum] = "e1b1c9836a8947852f7440c32e23179234c76bd98cd9cc4001f376405f8b783b"
15 17
16DEPENDS = " \ 18DEPENDS = " \
17 dbus \ 19 dbus \
@@ -43,6 +45,6 @@ FILES:${PN} += "${libdir}/gnome-settings-daemon-3.0/gtk-modules/at-spi2-atk.desk
43 ${datadir}/dbus-1/services/*.service \ 45 ${datadir}/dbus-1/services/*.service \
44 ${datadir}/dbus-1/accessibility-services/*.service \ 46 ${datadir}/dbus-1/accessibility-services/*.service \
45 ${datadir}/defaults/at-spi2 \ 47 ${datadir}/defaults/at-spi2 \
46 ${systemd_user_unitdir}/at-spi-dbus-bus.service \ 48 ${systemd_user_unitdir}/at-spi-dbus-bus.service \
47 " 49 "
48BBCLASSEXTEND = "native nativesdk" 50BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/attr/acl/0001-libmisc-__acl_get_uid-fix-memory-wasting-loop-if-use.patch b/meta/recipes-support/attr/acl/0001-libmisc-__acl_get_uid-fix-memory-wasting-loop-if-use.patch
new file mode 100644
index 0000000000..5052bdaa2f
--- /dev/null
+++ b/meta/recipes-support/attr/acl/0001-libmisc-__acl_get_uid-fix-memory-wasting-loop-if-use.patch
@@ -0,0 +1,49 @@
1From 56abe432b65801f31277fb9a3bca0f9e31502315 Mon Sep 17 00:00:00 2001
2From: Matthias Gerstner <matthias.gerstner@suse.de>
3Date: Thu, 25 Apr 2024 12:43:49 +0200
4Subject: [PATCH] libmisc: __acl_get_uid(): fix memory wasting loop if user
5 does not exist
6
7I noticed that `acl_from_text()` unexpectedly returns ENOMEM for invalid
8user names. The reason for this is a missing break statement in the for
9loop in `__acl_get_uid()`, which causes the loop to act as if ERANGE was
10returned from `getpwnam_r()`, thereby exponentially increasing the
11buffer size to (in my case) multiple gigabytes, until `grow_buffer()`
12reports ENOMEM, which terminates the `__acl_get_uid()` function.
13
14This is a pretty costly "no such user" lookup that can disturb a
15process's heap memory management, but can also cause a process to fail
16e.g. if it is multithreaded and other threads encounter an ENOMEM,
17before `__acl_get_uid()` frees the gigantic heap buffer and returns.
18The allocated memory isn't actually used. Therefore on Linux it should
19not affect other processes by default, due to its overcommit memory
20and lazy memory allocation strategy.
21
22Fix this by properly terminating the for loop on any conditions except
23an ERANGE error being reported. The same break statement correctly
24exists in `__acl_get_gid()` already.
25
26Fixes: 3737f00 ("use thread-safe getpwnam_r and getgrnam_r")
27Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
28
29Upstream-Status: Backport
30Signed-off-by: Ross Burton <ross.burton@arm.com>
31---
32 libmisc/uid_gid_lookup.c | 1 +
33 1 file changed, 1 insertion(+)
34
35diff --git a/libmisc/uid_gid_lookup.c b/libmisc/uid_gid_lookup.c
36index a4f21f6..74baab4 100644
37--- a/libmisc/uid_gid_lookup.c
38+++ b/libmisc/uid_gid_lookup.c
39@@ -91,6 +91,7 @@ __acl_get_uid(const char *token, uid_t *uid_p)
40 if (err == ERANGE)
41 continue;
42 errno = err ? err : EINVAL;
43+ break;
44 }
45 free(buffer);
46 return result ? 0 : -1;
47--
482.43.0
49
diff --git a/meta/recipes-support/attr/acl/0001-test-misc.test-Don-t-mix-stdout-and-stderr.patch b/meta/recipes-support/attr/acl/0001-test-misc.test-Don-t-mix-stdout-and-stderr.patch
new file mode 100644
index 0000000000..5aa3f3224c
--- /dev/null
+++ b/meta/recipes-support/attr/acl/0001-test-misc.test-Don-t-mix-stdout-and-stderr.patch
@@ -0,0 +1,35 @@
1From 47f8039ec9bd08b629775c8e788d11e41fa95f14 Mon Sep 17 00:00:00 2001
2From: Andreas Gruenbacher <agruenba@redhat.com>
3Date: Mon, 24 Mar 2025 21:14:09 +0100
4Subject: [PATCH] test/misc.test: Don't mix stdout and stderr
5
6In different environments, we may not get the stdout and stderr output
7in the order the run script expects, so check both separately.
8
9Fixes: https://savannah.nongnu.org/bugs/?66944
10Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
11
12Upstream-Status: Backport
13Signed-off-by: Ross Burton <ross.burton@arm.com>
14---
15 test/misc.test | 3 ++-
16 1 file changed, 2 insertions(+), 1 deletion(-)
17
18diff --git a/test/misc.test b/test/misc.test
19index 06b3136..57c02e5 100644
20--- a/test/misc.test
21+++ b/test/misc.test
22@@ -440,8 +440,9 @@ Dangling symlink test https://savannah.nongnu.org/bugs/?28131
23 > other::r-x
24 >
25 $ setfacl -R -m u:bin:rw d
26- $ getfacl -RL d
27+ $ getfacl -RL d > /dev/null
28 > getfacl: d/b: No such file or directory
29+ $ getfacl -RL d 2> /dev/null
30 > # file: d
31 > # owner: %TUSER
32 > # group: %TGROUP
33--
342.43.0
35
diff --git a/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch b/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch
deleted file mode 100644
index 219feaccd0..0000000000
--- a/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch
+++ /dev/null
@@ -1,60 +0,0 @@
1From 7dec6fa3b3494a55120402ff1ea3eb96b67138e8 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 12 Dec 2019 15:47:49 +0100
4Subject: [PATCH] test: patch out failing bits
5
6I have confirmed on the host distro (Ubuntu 18.04) that they
7fail as well; upstream probably haven't noticed because the
8test is only executed under sudo.
9
10Upstream-Status: Inappropriate [disabling tests instead of fixing them properly]
11Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12---
13 test/root/permissions.test | 13 -------------
14 1 file changed, 13 deletions(-)
15
16diff --git a/test/root/permissions.test b/test/root/permissions.test
17index 8f8f825..21e8a95 100644
18--- a/test/root/permissions.test
19+++ b/test/root/permissions.test
20@@ -50,10 +50,6 @@ User daemon is a member in the owning group, which has only read access.
21 Verify this.
22
23 $ su daemon
24- $ cat f
25- > root
26- > bin
27-
28 $ echo daemon >> f
29 >~ .*f: Permission denied$
30
31@@ -146,8 +142,6 @@ the owning group, he should still have no write access.
32 $ setfacl -x g:daemon f
33
34 $ su daemon
35- $ echo daemon4 >> f
36- >~ .*f: Permission denied$
37
38
39 Change the owning group. The other permissions should now grant user
40@@ -158,12 +152,6 @@ daemon write access.
41
42 $ su daemon
43 $ echo daemon5 >> f
44- $ cat f
45- > root
46- > bin
47- > daemon
48- > daemon2
49- > daemon5
50
51
52 Verify that permissions in separate matching ACL entries do not
53@@ -173,7 +161,6 @@ accumulate.
54 $ setfacl -m g:bin:r,g:daemon:w f
55
56 $ su daemon
57- $ : < f
58 $ : > f
59 $ : <> f
60 >~ .*f: Permission denied$
diff --git a/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch b/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch
deleted file mode 100644
index 748f37f3e7..0000000000
--- a/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch
+++ /dev/null
@@ -1,24 +0,0 @@
1From 42ae3f8a5e32ba0681ccd1552a203ddad8748a6e Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 12 Dec 2019 13:45:52 +0100
4Subject: [PATCH] tests: do not hardcode the build path into a helper library
5
6Upstream-Status: Inappropriate [oe-core specific]
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8---
9 test/Makemodule.am | 2 +-
10 1 file changed, 1 insertion(+), 1 deletion(-)
11
12diff --git a/test/Makemodule.am b/test/Makemodule.am
13index e1d715d..cffe732 100644
14--- a/test/Makemodule.am
15+++ b/test/Makemodule.am
16@@ -30,7 +30,7 @@ EXTRA_DIST += \
17 check_LTLIBRARIES = libtestlookup.la
18
19 libtestlookup_la_SOURCES = test/test_passwd.c test/test_group.c
20-libtestlookup_la_CFLAGS = -DBASEDIR=\"$(abs_srcdir)\"
21+libtestlookup_la_CFLAGS = -DBASEDIR=\"/tmp/acl-ptest\"
22 libtestlookup_la_LDFLAGS = -rpath $(abs_builddir)
23
24 # Make sure translations don't break tests when matching output.
diff --git a/meta/recipes-support/attr/acl/run-ptest b/meta/recipes-support/attr/acl/run-ptest
index 3af75c84fe..f28d8c1212 100644
--- a/meta/recipes-support/attr/acl/run-ptest
+++ b/meta/recipes-support/attr/acl/run-ptest
@@ -1,16 +1,31 @@
1#!/bin/sh 1#!/bin/sh
2#
3#This script is used to run acl test suites
4 2
5#umask 077 3failed=0
4all=0
6 5
7mkdir -p /tmp/acl-ptest/test
8cp test/test.* /tmp/acl-ptest/test
9 6
10set +e 7for f in *.test; do
11make test-suite.log 8 LD_PRELOAD=$(pwd)/libtestlookup.so ./run $f
12exitcode=$? 9 case "$?" in
13if [ $exitcode -ne 0 -a -e test-suite.log ]; then 10 0)
14 cat test-suite.log 11 echo "PASS: $f"
12 all=$((all + 1))
13 ;;
14 77)
15 echo "SKIP: $f"
16 ;;
17 *)
18 echo "FAIL: $f"
19 failed=$((failed + 1))
20 all=$((all + 1))
21 ;;
22 esac
23done
24
25if [ "$failed" -eq 0 ] ; then
26 echo "All $all tests passed"
27 exit 0
28else
29 echo "$failed of $all tests failed"
30 exit 1
15fi 31fi
16exit $exitcode
diff --git a/meta/recipes-support/attr/acl_2.3.2.bb b/meta/recipes-support/attr/acl_2.3.2.bb
index 6178473873..a405cc2692 100644
--- a/meta/recipes-support/attr/acl_2.3.2.bb
+++ b/meta/recipes-support/attr/acl_2.3.2.bb
@@ -16,11 +16,10 @@ LIC_FILES_CHKSUM = "file://doc/COPYING;md5=c781d70ed2b4d48995b790403217a249 \
16DEPENDS = "attr" 16DEPENDS = "attr"
17 17
18SRC_URI = "${SAVANNAH_GNU_MIRROR}/acl/${BP}.tar.gz \ 18SRC_URI = "${SAVANNAH_GNU_MIRROR}/acl/${BP}.tar.gz \
19 file://0001-libmisc-__acl_get_uid-fix-memory-wasting-loop-if-use.patch \
20 file://0001-test-misc.test-Don-t-mix-stdout-and-stderr.patch \
19 file://run-ptest \ 21 file://run-ptest \
20 file://0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch \
21 file://0001-test-patch-out-failing-bits.patch \
22 " 22 "
23
24SRC_URI[sha256sum] = "5f2bdbad629707aa7d85c623f994aa8a1d2dec55a73de5205bac0bf6058a2f7c" 23SRC_URI[sha256sum] = "5f2bdbad629707aa7d85c623f994aa8a1d2dec55a73de5205bac0bf6058a2f7c"
25 24
26inherit autotools gettext ptest 25inherit autotools gettext ptest
@@ -31,55 +30,41 @@ PACKAGES =+ "lib${BPN}"
31 30
32FILES:lib${BPN} = "${libdir}/lib*${SOLIBS}" 31FILES:lib${BPN} = "${libdir}/lib*${SOLIBS}"
33 32
34PTEST_BUILD_HOST_FILES = "builddefs"
35PTEST_BUILD_HOST_PATTERN = "^RPM"
36
37do_compile_ptest() { 33do_compile_ptest() {
38 oe_runmake libtestlookup.la 34 oe_runmake libtestlookup.la libtestlookup_la_CFLAGS=-DBASEDIR=\\\"${PTEST_PATH}\\\"
39} 35}
40 36
41do_install_ptest() { 37do_install_ptest() {
42 cp -rf ${S}/test/ ${D}${PTEST_PATH} 38 install -m755 ${S}/test/run ${S}/test/sort-getfacl-output ${D}${PTEST_PATH}/
43 cp -rf ${S}/build-aux/ ${D}${PTEST_PATH} 39 install -m644 ${S}/test/*.acl ${D}${PTEST_PATH}/
44 mkdir -p ${D}${PTEST_PATH}/.libs 40
45 cp -rf ${B}/.libs/libtestlookup* ${D}${PTEST_PATH}/.libs 41 # Install the tests
46 cp ${B}/Makefile ${D}${PTEST_PATH} 42 for t in $(makefile-getvar ${S}/test/Makemodule.am TESTS); do
47 43 install -m644 ${S}/$t ${D}${PTEST_PATH}/
48 sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ 44 done
49 -e 's|${DEBUG_PREFIX_MAP}||g' \ 45 # Remove the tests that are expected to fail (they need a NFS server configured)
50 -e 's:${HOSTTOOLS_DIR}/::g' \ 46 for t in $(makefile-getvar ${S}/test/Makemodule.am XFAIL_TESTS); do
51 -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ 47 rm ${D}${PTEST_PATH}/$(basename $t)
52 -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ 48 done
53 -i ${D}${PTEST_PATH}/Makefile 49 # These tests need a very specific user/group setup
54 50 # (https://savannah.nongnu.org/bugs/index.php?66927)
55 sed -i "s|^srcdir =.*|srcdir = \.|g" ${D}${PTEST_PATH}/Makefile 51 rm -f ${D}${PTEST_PATH}/getfacl.test ${D}${PTEST_PATH}/permissions.test ${D}${PTEST_PATH}/restore.test ${D}${PTEST_PATH}/setfacl.test
56 sed -i "s|^abs_srcdir =.*|abs_srcdir = \.|g" ${D}${PTEST_PATH}/Makefile 52
57 sed -i "s|^abs_top_srcdir =.*|abs_top_srcdir = \.\.|g" ${D}${PTEST_PATH}/Makefile 53 ${B}/libtool --mode=install install ${B}/libtestlookup.la ${D}${PTEST_PATH}/
58 sed -i "s|^Makefile:.*|Makefile:|g" ${D}${PTEST_PATH}/Makefile 54 rm -f ${D}${PTEST_PATH}/*.la
59 55 install -d ${D}${PTEST_PATH}/test
60 rm ${D}${PTEST_PATH}/.libs/libtestlookup.lai 56 install -m644 ${S}/test/test.passwd ${S}/test/test.group ${D}${PTEST_PATH}/test
61}
62
63do_install_ptest:append:libc-musl() {
64 sed -i -e '/test\/misc.test/d' ${D}${PTEST_PATH}/Makefile
65} 57}
66 58
67RDEPENDS:${PN}-ptest = "acl \ 59RDEPENDS:${PN}-ptest = "acl \
68 bash \
69 coreutils \ 60 coreutils \
70 perl \ 61 perl \
71 perl-module-constant \
72 perl-module-filehandle \
73 perl-module-getopt-std \
74 perl-module-posix \
75 shadow \
76 make \
77 gawk \
78 e2fsprogs-mke2fs \
79 perl-module-cwd \ 62 perl-module-cwd \
80 perl-module-file-basename \ 63 perl-module-file-basename \
81 perl-module-file-path \ 64 perl-module-file-path \
82 perl-module-file-spec \ 65 perl-module-filehandle \
66 perl-module-getopt-std \
67 perl-module-posix \
83 " 68 "
84 69
85BBCLASSEXTEND = "native nativesdk" 70BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/attr/attr.inc b/meta/recipes-support/attr/attr.inc
deleted file mode 100644
index 75d616893a..0000000000
--- a/meta/recipes-support/attr/attr.inc
+++ /dev/null
@@ -1,72 +0,0 @@
1SUMMARY = "Utilities for manipulating filesystem extended attributes"
2DESCRIPTION = "Implement the ability for a user to attach name:value pairs to objects within the XFS filesystem."
3
4HOMEPAGE = "http://savannah.nongnu.org/projects/attr/"
5SECTION = "libs"
6
7DEPENDS = "virtual/libintl"
8
9LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
10LICENSE:${PN} = "GPL-2.0-or-later"
11LICENSE:lib${BPN} = "LGPL-2.1-or-later"
12LIC_FILES_CHKSUM = "file://doc/COPYING;md5=2d0aa14b3fce4694e4f615e30186335f \
13 file://doc/COPYING.LGPL;md5=b8d31f339300bc239d73461d68e77b9c \
14 file://tools/attr.c;endline=17;md5=be0403261f0847e5f43ed5b08d19593c \
15 file://libattr/libattr.c;endline=17;md5=7970f77049f8fa1199fff62a7ab724fb"
16
17SRC_URI = "${SAVANNAH_GNU_MIRROR}/attr/${BP}.tar.gz \
18 file://run-ptest \
19 file://0001-attr.c-Include-libgen.h-for-posix-version-of-basenam.patch \
20"
21
22inherit ptest update-alternatives autotools gettext
23
24PACKAGES =+ "lib${BPN}"
25
26FILES:lib${BPN} = "${libdir}/lib*${SOLIBS} ${sysconfdir}"
27
28ALTERNATIVE_PRIORITY = "100"
29ALTERNATIVE:${PN} = "setfattr"
30ALTERNATIVE_TARGET[setfattr] = "${bindir}/setfattr"
31
32PTEST_BUILD_HOST_FILES = "builddefs"
33PTEST_BUILD_HOST_PATTERN = "^RPM"
34
35do_install_ptest() {
36 cp ${B}/Makefile ${D}${PTEST_PATH}
37 sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
38 -e 's|${DEBUG_PREFIX_MAP}||g' \
39 -e 's:${HOSTTOOLS_DIR}/::g' \
40 -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
41 -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
42 -i ${D}${PTEST_PATH}/Makefile
43
44 sed -i "s|^srcdir =.*|srcdir = \.|g" ${D}${PTEST_PATH}/Makefile
45 sed -i "s|^abs_srcdir =.*|abs_srcdir = \.|g" ${D}${PTEST_PATH}/Makefile
46 sed -i "s|^abs_top_srcdir =.*|abs_top_srcdir = \.\.|g" ${D}${PTEST_PATH}/Makefile
47 sed -i "s|^Makefile:.*|Makefile:|g" ${D}${PTEST_PATH}/Makefile
48 cp -rf ${S}/build-aux/ ${D}${PTEST_PATH}
49 cp -rf ${S}/test/ ${D}${PTEST_PATH}
50}
51
52do_install_ptest:append:libc-musl() {
53 sed -i -e 's|f: Operation n|f: N|g' ${D}${PTEST_PATH}/test/attr.test
54}
55
56RDEPENDS:${PN}-ptest = "attr \
57 bash \
58 coreutils \
59 perl-module-constant \
60 perl-module-filehandle \
61 perl-module-getopt-std \
62 perl-module-posix \
63 make \
64 perl \
65 gawk \
66 perl-module-cwd \
67 perl-module-file-basename \
68 perl-module-file-path \
69 perl-module-file-spec \
70 "
71
72BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/attr/attr/run-ptest b/meta/recipes-support/attr/attr/run-ptest
index 3e7a3a17a0..028671a9bd 100644
--- a/meta/recipes-support/attr/attr/run-ptest
+++ b/meta/recipes-support/attr/attr/run-ptest
@@ -1,10 +1,30 @@
1#!/bin/sh 1#!/bin/sh
2 2
3set +e 3failed=0
4make test-suite.log 4all=0
5exitcode=$? 5
6if [ $exitcode -ne 0 -a -e test-suite.log ]; then 6for f in *.test; do
7 cat test-suite.log 7 ./run $f
8fi 8 case "$?" in
9exit $exitcode 9 0)
10 echo "PASS: $f"
11 all=$((all + 1))
12 ;;
13 77)
14 echo "SKIP: $f"
15 ;;
16 *)
17 echo "FAIL: $f"
18 failed=$((failed + 1))
19 all=$((all + 1))
20 ;;
21 esac
22done
10 23
24if [ "$failed" -eq 0 ] ; then
25 echo "All $all tests passed"
26 exit 0
27else
28 echo "$failed of $all tests failed"
29 exit 1
30fi
diff --git a/meta/recipes-support/attr/attr_2.5.2.bb b/meta/recipes-support/attr/attr_2.5.2.bb
index 2110c6d885..390445b959 100644
--- a/meta/recipes-support/attr/attr_2.5.2.bb
+++ b/meta/recipes-support/attr/attr_2.5.2.bb
@@ -1,5 +1,60 @@
1require attr.inc 1SUMMARY = "Utilities for manipulating filesystem extended attributes"
2DESCRIPTION = "Implement the ability for a user to attach name:value pairs to objects within the XFS filesystem."
3
4HOMEPAGE = "http://savannah.nongnu.org/projects/attr/"
5SECTION = "libs"
6
7DEPENDS = "virtual/libintl"
8
9LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
10LICENSE:${PN} = "GPL-2.0-or-later"
11LICENSE:lib${BPN} = "LGPL-2.1-or-later"
12LIC_FILES_CHKSUM = "file://doc/COPYING;md5=2d0aa14b3fce4694e4f615e30186335f \
13 file://doc/COPYING.LGPL;md5=b8d31f339300bc239d73461d68e77b9c \
14 file://tools/attr.c;endline=17;md5=be0403261f0847e5f43ed5b08d19593c \
15 file://libattr/libattr.c;endline=17;md5=7970f77049f8fa1199fff62a7ab724fb"
16
17SRC_URI = "${SAVANNAH_GNU_MIRROR}/attr/${BP}.tar.gz \
18 file://run-ptest \
19 file://0001-attr.c-Include-libgen.h-for-posix-version-of-basenam.patch \
20"
2 21
3SRC_URI[sha256sum] = "39bf67452fa41d0948c2197601053f48b3d78a029389734332a6309a680c6c87" 22SRC_URI[sha256sum] = "39bf67452fa41d0948c2197601053f48b3d78a029389734332a6309a680c6c87"
4 23
24inherit ptest update-alternatives autotools gettext
25
26PACKAGES =+ "lib${BPN}"
27
28FILES:lib${BPN} = "${libdir}/lib*${SOLIBS} ${sysconfdir}"
29
30ALTERNATIVE_PRIORITY = "100"
31ALTERNATIVE:${PN} = "setfattr getfattr"
32ALTERNATIVE_TARGET[setfattr] = "${bindir}/setfattr"
33ALTERNATIVE_TARGET[getfattr] = "${bindir}/getfattr"
34
35do_install_ptest() {
36 install -m755 ${S}/test/run ${S}/test/sort-getfattr-output ${D}${PTEST_PATH}/
37
38 for t in $(makefile-getvar ${S}/test/Makemodule.am TESTS); do
39 install -m644 ${S}/$t ${D}${PTEST_PATH}/
40 done
41}
42
43do_install_ptest:append:libc-musl() {
44 # With glibc strerror(ENOTSUP) is "Operation not supported" but
45 # musl is "Not supported".
46 # https://savannah.nongnu.org/bugs/?62370
47 sed -i -e 's|f: Operation not supported|f: Not supported|g' ${D}${PTEST_PATH}/attr.test
48}
49
50RDEPENDS:${PN}-ptest = "attr \
51 perl \
52 perl-module-cwd \
53 perl-module-file-basename \
54 perl-module-file-path \
55 perl-module-filehandle \
56 perl-module-getopt-std \
57 perl-module-posix \
58 "
59
5BBCLASSEXTEND = "native nativesdk" 60BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/bash-completion/bash-completion_2.13.0.bb b/meta/recipes-support/bash-completion/bash-completion_2.16.0.bb
index f75d61e219..d1a8f5e0cc 100644
--- a/meta/recipes-support/bash-completion/bash-completion_2.13.0.bb
+++ b/meta/recipes-support/bash-completion/bash-completion_2.16.0.bb
@@ -14,7 +14,7 @@ SECTION = "console/utils"
14 14
15SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" 15SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz"
16 16
17SRC_URI[sha256sum] = "c5f99a39e40f0d154c03ff15438e87ece1f5ac666336a4459899e2ff4bedf3d1" 17SRC_URI[sha256sum] = "3369bd5e418a75fb990863925aed5b420398acebb320ec4c0306b3eae23f107a"
18GITHUB_BASE_URI = "https://github.com/scop/bash-completion/releases" 18GITHUB_BASE_URI = "https://github.com/scop/bash-completion/releases"
19 19
20PARALLEL_MAKE = "" 20PARALLEL_MAKE = ""
diff --git a/meta/recipes-support/bmaptool/bmaptool_git.bb b/meta/recipes-support/bmaptool/bmaptool_3.9.0.bb
index fd53c21c06..d82ce5ded4 100644
--- a/meta/recipes-support/bmaptool/bmaptool_git.bb
+++ b/meta/recipes-support/bmaptool/bmaptool_3.9.0.bb
@@ -10,17 +10,17 @@ LICENSE = "GPL-2.0-only"
10LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" 10LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
11 11
12SRC_URI = "git://github.com/yoctoproject/${BPN};branch=main;protocol=https" 12SRC_URI = "git://github.com/yoctoproject/${BPN};branch=main;protocol=https"
13SRCREV = "2ff5750b8a3e0b36a9993c20e2ea10a07bc62085" 13SRCREV = "618a7316102f6f81faa60537503012a419eafa06"
14S = "${WORKDIR}/git" 14
15BASEVER = "3.8.0" 15# TODO: remove when we upgrade to a release past 3.9.0
16PV = "${BASEVER}+git" 16PV .= "+git"
17 17
18UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" 18UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
19 19
20# Need df from coreutils 20# Need df from coreutils
21RDEPENDS:${PN} = "python3-core python3-compression python3-misc python3-mmap python3-setuptools python3-fcntl python3-six coreutils" 21RDEPENDS:${PN} = "python3-core python3-compression python3-misc python3-mmap python3-setuptools python3-fcntl coreutils"
22 22
23inherit setuptools3 23inherit python_hatchling
24 24
25# For compatibility with layers before scarthgap 25# For compatibility with layers before scarthgap
26RREPLACES:${PN} = "bmap-tools" 26RREPLACES:${PN} = "bmap-tools"
diff --git a/meta/recipes-support/boost/boost-1.84.0.inc b/meta/recipes-support/boost/boost-1.88.0.inc
index 5bbea2ba5b..96bd986f6a 100644
--- a/meta/recipes-support/boost/boost-1.84.0.inc
+++ b/meta/recipes-support/boost/boost-1.88.0.inc
@@ -11,10 +11,10 @@ BOOST_VER = "${@"_".join(d.getVar("PV").split("."))}"
11BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}" 11BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}"
12BOOST_P = "boost_${BOOST_VER}" 12BOOST_P = "boost_${BOOST_VER}"
13 13
14SRC_URI = "https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/${BOOST_P}.tar.bz2" 14SRC_URI = "https://archives.boost.io/release/${PV}/source/${BOOST_P}.tar.bz2"
15SRC_URI[sha256sum] = "cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454" 15SRC_URI[sha256sum] = "46d9d2c06637b219270877c9e16155cbd015b6dc84349af064c088e9b5b12f7b"
16 16
17UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/" 17UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
18UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/" 18UPSTREAM_CHECK_REGEX = "release/(?P<pver>.*)/source/"
19 19
20S = "${WORKDIR}/${BOOST_P}" 20S = "${UNPACKDIR}/${BOOST_P}"
diff --git a/meta/recipes-support/boost/boost-build-native_1.84.0.bb b/meta/recipes-support/boost/boost-build-native_1.87.0.bb
index a345bac499..5b914b6f88 100644
--- a/meta/recipes-support/boost/boost-build-native_1.84.0.bb
+++ b/meta/recipes-support/boost/boost-build-native_1.87.0.bb
@@ -7,21 +7,19 @@ LICENSE = "BSL-1.0"
7LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c" 7LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
8 8
9SRC_URI = "git://github.com/boostorg/build;protocol=https;branch=master" 9SRC_URI = "git://github.com/boostorg/build;protocol=https;branch=master"
10SRCREV = "8d86b9a85407d73d6e8c631771f18c2a237d2d71" 10SRCREV = "4a52d8c06635435b64e31a56eaf7ca5dc912a71d"
11PE = "1" 11PE = "1"
12 12
13UPSTREAM_CHECK_GITTAGREGEX = "boost-(?P<pver>(\d+(\.\d+)+))" 13UPSTREAM_CHECK_GITTAGREGEX = "boost-(?P<pver>(\d+(\.\d+)+))"
14 14
15inherit native 15inherit native
16 16
17S = "${WORKDIR}/git"
18
19do_compile() { 17do_compile() {
20 ./bootstrap.sh 18 ./bootstrap.sh
21} 19}
22 20
23do_install() { 21do_install() {
24 HOME=/var/run ./b2 install --prefix=${prefix} staging-prefix=${D}${prefix} 22 HOME=/var/run ./b2 install --prefix=${D}${prefix}
25} 23}
26 24
27# The build is either release mode (pre-stripped) or debug (-O0). 25# The build is either release mode (pre-stripped) or debug (-O0).
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
index 77105aa1fa..64a57ddfb2 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -16,6 +16,7 @@ do_configure[cleandirs] = "${B}"
16 16
17BOOST_LIBS = "\ 17BOOST_LIBS = "\
18 atomic \ 18 atomic \
19 charconv \
19 chrono \ 20 chrono \
20 container \ 21 container \
21 context \ 22 context \
@@ -31,6 +32,7 @@ BOOST_LIBS = "\
31 json \ 32 json \
32 log \ 33 log \
33 math \ 34 math \
35 process \
34 program_options \ 36 program_options \
35 random \ 37 random \
36 regex \ 38 regex \
@@ -42,6 +44,9 @@ BOOST_LIBS = "\
42 type_erasure \ 44 type_erasure \
43 url \ 45 url \
44 wave \ 46 wave \
47 ${@bb.utils.filter('PACKAGECONFIG', 'locale python', d)} \
48 ${@bb.utils.contains('PACKAGECONFIG', 'graph_parallel', 'graph_parallel mpi', \
49 bb.utils.filter('PACKAGECONFIG', 'mpi', d), d)} \
45 " 50 "
46 51
47# optional libraries 52# optional libraries
@@ -51,12 +56,6 @@ PACKAGECONFIG[graph_parallel] = ",,,boost-mpi mpich"
51PACKAGECONFIG[mpi] = ",,mpich" 56PACKAGECONFIG[mpi] = ",,mpich"
52PACKAGECONFIG[python] = ",,python3" 57PACKAGECONFIG[python] = ",,python3"
53 58
54BOOST_LIBS += "\
55 ${@bb.utils.filter('PACKAGECONFIG', 'locale python', d)} \
56 ${@bb.utils.contains('PACKAGECONFIG', 'graph_parallel', 'graph_parallel mpi', \
57 bb.utils.filter('PACKAGECONFIG', 'mpi', d), d)} \
58"
59
60inherit python3-dir 59inherit python3-dir
61PYTHON_ROOT = "${STAGING_DIR_HOST}/${prefix}" 60PYTHON_ROOT = "${STAGING_DIR_HOST}/${prefix}"
62 61
@@ -69,14 +68,12 @@ python __anonymous () {
69 mlprefix = d.getVar("MLPREFIX") 68 mlprefix = d.getVar("MLPREFIX")
70 for lib in d.getVar('BOOST_LIBS').split(): 69 for lib in d.getVar('BOOST_LIBS').split():
71 extras.append("--with-%s" % lib) 70 extras.append("--with-%s" % lib)
72 pkg = "boost-%s" % (lib.replace("_", "-")) 71 pkg = "%s-%s" % (d.getVar("BPN"), lib.replace("_", "-"))
73 if "-native" in pn: 72 if "-native" in pn:
74 pkg = pkg + "-native" 73 pkg = pkg + "-native"
75 packages.append(mlprefix + pkg) 74 packages.append(mlprefix + pkg)
76 if not d.getVar("FILES:%s" % pkg): 75 if not d.getVar("FILES:%s%s" % (mlprefix, pkg)):
77 d.setVar("FILES:%s%s" % (mlprefix, pkg), "${libdir}/libboost_%s*.so.*" % lib) 76 d.setVar("FILES:%s%s" % (mlprefix, pkg), "${libdir}/libboost_%s*.so.*" % lib)
78 else:
79 d.setVar("FILES:%s%s" % (mlprefix, pkg), d.getVar("FILES:%s" % pkg))
80 77
81 d.setVar("BOOST_PACKAGES", " ".join(packages)) 78 d.setVar("BOOST_PACKAGES", " ".join(packages))
82 d.setVar("BJAM_EXTRA", " ".join(extras)) 79 d.setVar("BJAM_EXTRA", " ".join(extras))
@@ -86,9 +83,9 @@ python __anonymous () {
86FILES:${PN}-graph_parallel = "${libdir}/libboost_graph_parallel.so.*" 83FILES:${PN}-graph_parallel = "${libdir}/libboost_graph_parallel.so.*"
87FILES:${PN}-locale = "${libdir}/libboost_locale.so.*" 84FILES:${PN}-locale = "${libdir}/libboost_locale.so.*"
88FILES:${PN}-mpi = "${libdir}/mpi.so ${libdir}/libboost_mpi*.so.*" 85FILES:${PN}-mpi = "${libdir}/mpi.so ${libdir}/libboost_mpi*.so.*"
89FILES:boost-serialization = "${libdir}/libboost_serialization*.so.* \ 86FILES:${PN}-serialization = "${libdir}/libboost_serialization*.so.* \
90 ${libdir}/libboost_wserialization*.so.*" 87 ${libdir}/libboost_wserialization*.so.*"
91FILES:boost-test = "${libdir}/libboost_prg_exec_monitor*.so.* \ 88FILES:${PN}-test = "${libdir}/libboost_prg_exec_monitor*.so.* \
92 ${libdir}/libboost_unit_test_framework*.so.*" 89 ${libdir}/libboost_unit_test_framework*.so.*"
93 90
94# -dev last to pick up the remaining stuff 91# -dev last to pick up the remaining stuff
diff --git a/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch b/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
index 9ba5d5cc33..04bede4578 100644
--- a/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
+++ b/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch
@@ -1,4 +1,4 @@
1From 18185e939ca121335a6172c8e50872af8122a759 Mon Sep 17 00:00:00 2001 1From e2cc24d6d8b7b24a6d0a30c52c7ad69a001a0ad5 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 18 Dec 2018 15:42:57 +0100 3Date: Tue, 18 Dec 2018 15:42:57 +0100
4Subject: [PATCH] Don't set up arch/instruction-set flags, we do that 4Subject: [PATCH] Don't set up arch/instruction-set flags, we do that
@@ -13,10 +13,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
13 1 file changed, 153 deletions(-) 13 1 file changed, 153 deletions(-)
14 14
15diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam 15diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
16index 834f5e1bf..493a43e6d 100644 16index b7825d4e6..ed7e39baf 100644
17--- a/tools/build/src/tools/gcc.jam 17--- a/tools/build/src/tools/gcc.jam
18+++ b/tools/build/src/tools/gcc.jam 18+++ b/tools/build/src/tools/gcc.jam
19@@ -1113,156 +1113,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + : 19@@ -1144,156 +1144,3 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + :
20 <architecture>$(architecture)/<instruction-set>$(instruction-set) 20 <architecture>$(architecture)/<instruction-set>$(instruction-set)
21 : $(values) ; 21 : $(values) ;
22 } 22 }
diff --git a/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch b/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
index 913810a340..db1ee03898 100644
--- a/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
+++ b/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch
@@ -1,4 +1,4 @@
1From bbb0845c0a79238fb2e84cca41826a0944b6ce7e Mon Sep 17 00:00:00 2001 1From b0728812241c048907e6f1ba168292cd9948347d Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com> 2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Thu, 14 Nov 2019 10:13:53 +0800 3Date: Thu, 14 Nov 2019 10:13:53 +0800
4Subject: [PATCH] dont setup compiler flags -m32/-m64 4Subject: [PATCH] dont setup compiler flags -m32/-m64
@@ -9,14 +9,14 @@ Upstream-Status: Inappropriate [OE-specific]
9 9
10Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> 10Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
11--- 11---
12 tools/build/src/tools/gcc.jam | 14 -------------- 12 tools/build/src/tools/gcc.jam | 16 ----------------
13 1 file changed, 14 deletions(-) 13 1 file changed, 16 deletions(-)
14 14
15diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam 15diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam
16index 493a43e6d..42dccbdfe 100644 16index ed7e39baf..90513f84a 100644
17--- a/tools/build/src/tools/gcc.jam 17--- a/tools/build/src/tools/gcc.jam
18+++ b/tools/build/src/tools/gcc.jam 18+++ b/tools/build/src/tools/gcc.jam
19@@ -360,20 +360,6 @@ local rule compile-link-flags ( * ) 19@@ -377,22 +377,6 @@ local rule compile-link-flags ( * )
20 compile-link-flags <link>shared/<target-os>$(non-windows) : -fPIC ; 20 compile-link-flags <link>shared/<target-os>$(non-windows) : -fPIC ;
21 } 21 }
22 22
@@ -29,6 +29,8 @@ index 493a43e6d..42dccbdfe 100644
29- compile-link-flags <target-os>hpux/<address-model>64 : -mlp64 ; 29- compile-link-flags <target-os>hpux/<address-model>64 : -mlp64 ;
30- 30-
31- local generic-os = [ set.difference $(all-os) : aix hpux ] ; 31- local generic-os = [ set.difference $(all-os) : aix hpux ] ;
32- compile-link-flags <target-os>$(generic-os)/<architecture>s390x/<address-model>32 : -m31 ;
33- compile-link-flags <target-os>$(generic-os)/<architecture>s390x/<address-model>64 : -m64 ;
32- local arch = power sparc x86 ; 34- local arch = power sparc x86 ;
33- compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>32 : -m32 ; 35- compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>32 : -m32 ;
34- compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>64 : -m64 ; 36- compile-link-flags <target-os>$(generic-os)/<architecture>$(arch)/<address-model>64 : -m64 ;
diff --git a/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch b/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch
index 9b6fcc6358..ad90d96ddd 100644
--- a/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch
+++ b/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch
@@ -1,4 +1,4 @@
1From d6864bd78c01c5e8578805a7b67555c70a0e99a2 Mon Sep 17 00:00:00 2001 1From e7491f9874411fd9855957812ba9bac948a61356 Mon Sep 17 00:00:00 2001
2From: Jackie Huang <jackie.huang@windriver.com> 2From: Jackie Huang <jackie.huang@windriver.com>
3Date: Fri, 23 Sep 2016 01:04:50 -0700 3Date: Fri, 23 Sep 2016 01:04:50 -0700
4Subject: [PATCH] boost-math: disable pch for gcc 4Subject: [PATCH] boost-math: disable pch for gcc
@@ -14,13 +14,13 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
14 1 file changed, 1 insertion(+), 1 deletion(-) 14 1 file changed, 1 insertion(+), 1 deletion(-)
15 15
16diff --git a/libs/math/build/Jamfile.v2 b/libs/math/build/Jamfile.v2 16diff --git a/libs/math/build/Jamfile.v2 b/libs/math/build/Jamfile.v2
17index fd840287e..5aff7d724 100644 17index 500c77363..504d7d8c6 100644
18--- a/libs/math/build/Jamfile.v2 18--- a/libs/math/build/Jamfile.v2
19+++ b/libs/math/build/Jamfile.v2 19+++ b/libs/math/build/Jamfile.v2
20@@ -14,7 +14,7 @@ project 20@@ -15,7 +15,7 @@ project
21 <toolset>intel-win:<linkflags>-nologo
21 #<toolset>intel-linux:<pch>off 22 #<toolset>intel-linux:<pch>off
22 <toolset>intel-darwin:<pch>off 23 <toolset>intel-darwin:<pch>off
23 <toolset>msvc-7.1:<pch>off
24- <toolset>gcc,<target-os>windows:<pch>off 24- <toolset>gcc,<target-os>windows:<pch>off
25+ <toolset>gcc:<pch>off 25+ <toolset>gcc:<pch>off
26 #<toolset>gcc:<cxxflags>-fvisibility=hidden 26 #<toolset>gcc:<cxxflags>-fvisibility=hidden
diff --git a/meta/recipes-support/boost/boost_1.84.0.bb b/meta/recipes-support/boost/boost_1.88.0.bb
index 4b580d078b..4b580d078b 100644
--- a/meta/recipes-support/boost/boost_1.84.0.bb
+++ b/meta/recipes-support/boost/boost_1.88.0.bb
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch b/meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch
index 5c4a32f526..1226508c98 100644
--- a/meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch
+++ b/meta/recipes-support/ca-certificates/ca-certificates/0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch
@@ -1,4 +1,4 @@
1From cb43ec15b700b25f3c4fe44043a1a021aaf5b768 Mon Sep 17 00:00:00 2001 1From 743774cd53ed1c45bb660eddacf6dadb5ee3e145 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de> 2From: Alexander Kanavin <alex@linutronix.de>
3Date: Mon, 18 Oct 2021 12:05:49 +0200 3Date: Mon, 18 Oct 2021 12:05:49 +0200
4Subject: [PATCH] Revert "mozilla/certdata2pem.py: print a warning for expired 4Subject: [PATCH] Revert "mozilla/certdata2pem.py: print a warning for expired
@@ -16,10 +16,10 @@ Signed-off-by: Alexander Kanavin <alex@linutronix.de>
16 3 files changed, 1 insertion(+), 13 deletions(-) 16 3 files changed, 1 insertion(+), 13 deletions(-)
17 17
18diff --git a/debian/changelog b/debian/changelog 18diff --git a/debian/changelog b/debian/changelog
19index 531e4d0..4006509 100644 19index dbe3e9c..496e05d 100644
20--- a/debian/changelog 20--- a/debian/changelog
21+++ b/debian/changelog 21+++ b/debian/changelog
22@@ -37,7 +37,6 @@ ca-certificates (20211004) unstable; urgency=low 22@@ -156,7 +156,6 @@ ca-certificates (20211004) unstable; urgency=low
23 - "Trustis FPS Root CA" 23 - "Trustis FPS Root CA"
24 - "Staat der Nederlanden Root CA - G3" 24 - "Staat der Nederlanden Root CA - G3"
25 * Blacklist expired root certificate "DST Root CA X3" (closes: #995432) 25 * Blacklist expired root certificate "DST Root CA X3" (closes: #995432)
@@ -28,7 +28,7 @@ index 531e4d0..4006509 100644
28 -- Julien Cristau <jcristau@debian.org> Thu, 07 Oct 2021 17:12:47 +0200 28 -- Julien Cristau <jcristau@debian.org> Thu, 07 Oct 2021 17:12:47 +0200
29 29
30diff --git a/debian/control b/debian/control 30diff --git a/debian/control b/debian/control
31index 4434b7a..5c6ba24 100644 31index b5f2ab0..d0e830e 100644
32--- a/debian/control 32--- a/debian/control
33+++ b/debian/control 33+++ b/debian/control
34@@ -3,7 +3,7 @@ Section: misc 34@@ -3,7 +3,7 @@ Section: misc
@@ -37,11 +37,11 @@ index 4434b7a..5c6ba24 100644
37 Build-Depends: debhelper-compat (= 13), po-debconf 37 Build-Depends: debhelper-compat (= 13), po-debconf
38-Build-Depends-Indep: python3, openssl, python3-cryptography 38-Build-Depends-Indep: python3, openssl, python3-cryptography
39+Build-Depends-Indep: python3, openssl 39+Build-Depends-Indep: python3, openssl
40 Standards-Version: 4.5.0.2 40 Standards-Version: 4.6.2
41 Rules-Requires-Root: no
41 Vcs-Git: https://salsa.debian.org/debian/ca-certificates.git 42 Vcs-Git: https://salsa.debian.org/debian/ca-certificates.git
42 Vcs-Browser: https://salsa.debian.org/debian/ca-certificates
43diff --git a/mozilla/certdata2pem.py b/mozilla/certdata2pem.py 43diff --git a/mozilla/certdata2pem.py b/mozilla/certdata2pem.py
44index ede23d4..7d796f1 100644 44index 4df86a2..7d796f1 100644
45--- a/mozilla/certdata2pem.py 45--- a/mozilla/certdata2pem.py
46+++ b/mozilla/certdata2pem.py 46+++ b/mozilla/certdata2pem.py
47@@ -21,16 +21,12 @@ 47@@ -21,16 +21,12 @@
@@ -66,8 +66,8 @@ index ede23d4..7d796f1 100644
66 if not obj['CKA_LABEL'] in trust or not trust[obj['CKA_LABEL']]: 66 if not obj['CKA_LABEL'] in trust or not trust[obj['CKA_LABEL']]:
67 continue 67 continue
68- 68-
69- cert = x509.load_der_x509_certificate(obj['CKA_VALUE']) 69- cert = x509.load_der_x509_certificate(bytes(obj['CKA_VALUE']))
70- if cert.not_valid_after < datetime.datetime.now(): 70- if cert.not_valid_after < datetime.datetime.utcnow():
71- print('!'*74) 71- print('!'*74)
72- print('Trusted but expired certificate found: %s' % obj['CKA_LABEL']) 72- print('Trusted but expired certificate found: %s' % obj['CKA_LABEL'])
73- print('!'*74) 73- print('!'*74)
@@ -75,6 +75,3 @@ index ede23d4..7d796f1 100644
75 bname = obj['CKA_LABEL'][1:-1].replace('/', '_')\ 75 bname = obj['CKA_LABEL'][1:-1].replace('/', '_')\
76 .replace(' ', '_')\ 76 .replace(' ', '_')\
77 .replace('(', '=')\ 77 .replace('(', '=')\
78--
792.20.1
80
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch b/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch
index 4a8ae5f4b5..1a29da756f 100644
--- a/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch
+++ b/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch
@@ -1,3 +1,8 @@
1From 63086d41f76b1c3357e23c6509df72d3f75af20c Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com>
3Date: Mon, 6 Jul 2015 15:19:41 +0100
4Subject: [PATCH] ca-certificates: remove Debianism in run-parts invocation
5
1ca-certificates is a package from Debian, but some host distros such as Fedora 6ca-certificates is a package from Debian, but some host distros such as Fedora
2have a leaner run-parts provided by cron which doesn't support --verbose or the 7have a leaner run-parts provided by cron which doesn't support --verbose or the
3 -- separator between arguments and paths. 8 -- separator between arguments and paths.
@@ -9,7 +14,6 @@ This solves errors such as
9| [...]/usr/sbin/update-ca-certificates: line 230: Not a directory: --: command not found 14| [...]/usr/sbin/update-ca-certificates: line 230: Not a directory: --: command not found
10| E: Not a directory: -- exited with code 127. 15| E: Not a directory: -- exited with code 127.
11 16
12
13Upstream-Status: Inappropriate 17Upstream-Status: Inappropriate
14Signed-off-by: Ross Burton <ross.burton@intel.com> 18Signed-off-by: Ross Burton <ross.burton@intel.com>
15Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com> 19Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com>
@@ -17,18 +21,18 @@ Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com>
17 sbin/update-ca-certificates | 4 +--- 21 sbin/update-ca-certificates | 4 +---
18 1 file changed, 1 insertion(+), 3 deletions(-) 22 1 file changed, 1 insertion(+), 3 deletions(-)
19 23
20Index: git/sbin/update-ca-certificates 24diff --git a/sbin/update-ca-certificates b/sbin/update-ca-certificates
21=================================================================== 25index 91d8024..1e737b9 100755
22--- git.orig/sbin/update-ca-certificates 26--- a/sbin/update-ca-certificates
23+++ git/sbin/update-ca-certificates 27+++ b/sbin/update-ca-certificates
24@@ -191,9 +191,7 @@ if [ -d "$HOOKSDIR" ] 28@@ -210,9 +210,7 @@ if [ -d "$HOOKSDIR" ]
25 then 29 then
26 30
27 echo "Running hooks in $HOOKSDIR..." 31 echo "Running hooks in $HOOKSDIR..."
28- VERBOSE_ARG= 32- VERBOSE_ARG=
29- [ "$verbose" = 0 ] || VERBOSE_ARG="--verbose" 33- [ "$verbose" = 0 ] || VERBOSE_ARG="--verbose"
30- eval run-parts "$VERBOSE_ARG" --test -- "$HOOKSDIR" | while read hook 34- eval run-parts "$VERBOSE_ARG" --test -- "$HOOKSDIR" | while read -r hook
31+ eval run-parts --test "$HOOKSDIR" | while read hook 35+ eval run-parts --test "$HOOKSDIR" | while read -r hook
32 do 36 do
33 ( cat "$ADDED" 37 ( cat "$ADDED"
34 cat "$REMOVED" ) | "$hook" || echo "E: $hook exited with code $?." 38 cat "$REMOVED" ) | "$hook" || echo "E: $hook exited with code $?."
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/0002-update-ca-certificates-use-SYSROOT.patch b/meta/recipes-support/ca-certificates/ca-certificates/0002-update-ca-certificates-use-SYSROOT.patch
deleted file mode 100644
index 792b4030b2..0000000000
--- a/meta/recipes-support/ca-certificates/ca-certificates/0002-update-ca-certificates-use-SYSROOT.patch
+++ /dev/null
@@ -1,46 +0,0 @@
1Upstream-Status: Pending
2
3From 724cb153ca0f607fb38b3a8db3ebb2742601cd81 Mon Sep 17 00:00:00 2001
4From: Andreas Oberritter <obi@opendreambox.org>
5Date: Tue, 19 Mar 2013 17:14:33 +0100
6Subject: [PATCH 2/2] update-ca-certificates: use $SYSROOT
7
8Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
9---
10 sbin/update-ca-certificates | 14 +++++++-------
11 1 file changed, 7 insertions(+), 7 deletions(-)
12
13Index: git/sbin/update-ca-certificates
14===================================================================
15--- git.orig/sbin/update-ca-certificates
16+++ git/sbin/update-ca-certificates
17@@ -24,12 +24,12 @@
18 verbose=0
19 fresh=0
20 default=0
21-CERTSCONF=/etc/ca-certificates.conf
22-CERTSDIR=/usr/share/ca-certificates
23-LOCALCERTSDIR=/usr/local/share/ca-certificates
24+CERTSCONF=$SYSROOT/etc/ca-certificates.conf
25+CERTSDIR=$SYSROOT/usr/share/ca-certificates
26+LOCALCERTSDIR=$SYSROOT/usr/local/share/ca-certificates
27 CERTBUNDLE=ca-certificates.crt
28-ETCCERTSDIR=/etc/ssl/certs
29-HOOKSDIR=/etc/ca-certificates/update.d
30+ETCCERTSDIR=$SYSROOT/etc/ssl/certs
31+HOOKSDIR=$SYSROOT/etc/ca-certificates/update.d
32
33 while [ $# -gt 0 ];
34 do
35@@ -92,9 +92,9 @@ add() {
36 PEM="$ETCCERTSDIR/$(basename "$CERT" .crt | sed -e 's/ /_/g' \
37 -e 's/[()]/=/g' \
38 -e 's/,/_/g').pem"
39- if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "$CERT" ]
40+ if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "${CERT##$SYSROOT}" ]
41 then
42- ln -sf "$CERT" "$PEM"
43+ ln -sf "${CERT##$SYSROOT}" "$PEM"
44 echo "+$PEM" >> "$ADDED"
45 fi
46 # Add trailing newline to certificate, if it is missing (#635570)
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/0003-update-ca-certificates-use-relative-symlinks-from-ET.patch b/meta/recipes-support/ca-certificates/ca-certificates/0003-update-ca-certificates-use-relative-symlinks-from-ET.patch
index 4bd967f788..929945b56f 100644
--- a/meta/recipes-support/ca-certificates/ca-certificates/0003-update-ca-certificates-use-relative-symlinks-from-ET.patch
+++ b/meta/recipes-support/ca-certificates/ca-certificates/0003-update-ca-certificates-use-relative-symlinks-from-ET.patch
@@ -1,4 +1,4 @@
1From a9fc13b2aee55655d58fcb77a3180fa99f96438a Mon Sep 17 00:00:00 2001 1From a69933f96a8675369de702bdb55e57dc21f65e7f Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com> 2From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
3Date: Wed, 28 Mar 2018 16:45:05 +0100 3Date: Wed, 28 Mar 2018 16:45:05 +0100
4Subject: [PATCH] update-ca-certificates: use relative symlinks from 4Subject: [PATCH] update-ca-certificates: use relative symlinks from
@@ -45,26 +45,26 @@ Signed-off-by: André Draszik <andre.draszik@jci.com>
45 1 file changed, 4 insertions(+), 2 deletions(-) 45 1 file changed, 4 insertions(+), 2 deletions(-)
46 46
47diff --git a/sbin/update-ca-certificates b/sbin/update-ca-certificates 47diff --git a/sbin/update-ca-certificates b/sbin/update-ca-certificates
48index 00f80c7..7e911a9 100755 48index 1e737b9..8510082 100755
49--- a/sbin/update-ca-certificates 49--- a/sbin/update-ca-certificates
50+++ b/sbin/update-ca-certificates 50+++ b/sbin/update-ca-certificates
51@@ -29,6 +29,7 @@ CERTSDIR=$SYSROOT/usr/share/ca-certificates 51@@ -30,6 +30,7 @@ LOCALCERTSDIR=/usr/local/share/ca-certificates
52 LOCALCERTSDIR=$SYSROOT/usr/local/share/ca-certificates
53 CERTBUNDLE=ca-certificates.crt 52 CERTBUNDLE=ca-certificates.crt
54 ETCCERTSDIR=$SYSROOT/etc/ssl/certs 53 ETCCERTSDIR=/etc/ssl/certs
54 HOOKSDIR=/etc/ca-certificates/update.d
55+FSROOT=../../../ # to get from $ETCCERTSDIR to the root of the file system 55+FSROOT=../../../ # to get from $ETCCERTSDIR to the root of the file system
56 HOOKSDIR=$SYSROOT/etc/ca-certificates/update.d
57 56
58 while [ $# -gt 0 ]; 57 while [ $# -gt 0 ];
59@@ -125,9 +126,10 @@ add() { 58 do
59@@ -100,9 +101,10 @@ add() {
60 PEM="$ETCCERTSDIR/$(basename "$CERT" .crt | sed -e 's/ /_/g' \ 60 PEM="$ETCCERTSDIR/$(basename "$CERT" .crt | sed -e 's/ /_/g' \
61 -e 's/[()]/=/g' \ 61 -e 's/[()]/=/g' \
62 -e 's/,/_/g').pem" 62 -e 's/,/_/g').pem"
63- if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "${CERT##$SYSROOT}" ] 63- if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "$CERT" ]
64+ DST="$(echo ${CERT} | sed -e "s|^$SYSROOT||" -e "s|^/|$FSROOT|" )" 64+ DST="$(echo ${CERT} | sed -e "s|^$SYSROOT||" -e "s|^/|$FSROOT|" )"
65+ if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "${DST}" ] 65+ if ! test -e "$PEM" || [ "$(readlink "$PEM")" != "${DST}" ]
66 then 66 then
67- ln -sf "${CERT##$SYSROOT}" "$PEM" 67- ln -sf "$CERT" "$PEM"
68+ ln -sf "${DST}" "$PEM" 68+ ln -sf "${DST}" "$PEM"
69 echo "+$PEM" >> "$ADDED" 69 echo "+$PEM" >> "$ADDED"
70 fi 70 fi
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch b/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch
deleted file mode 100644
index f8b0791bea..0000000000
--- a/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1Upstream-Status: Pending
2
3update-ca-certificates: find SYSROOT relative to its own location
4
5This makes the script relocatable.
6
7Index: git/sbin/update-ca-certificates
8===================================================================
9--- git.orig/sbin/update-ca-certificates
10+++ git/sbin/update-ca-certificates
11@@ -66,6 +66,39 @@ do
12 shift
13 done
14
15+if [ -z "$SYSROOT" ]; then
16+ local_which () {
17+ if [ $# -lt 1 ]; then
18+ return 1
19+ fi
20+
21+ (
22+ IFS=:
23+ for entry in $PATH; do
24+ if [ -x "$entry/$1" ]; then
25+ echo "$entry/$1"
26+ exit 0
27+ fi
28+ done
29+ exit 1
30+ )
31+ }
32+
33+ case "$0" in
34+ */*)
35+ sbindir=$(cd ${0%/*} && pwd)
36+ ;;
37+ *)
38+ sbindir=$(cd $(dirname $(local_which $0)) && pwd)
39+ ;;
40+ esac
41+ prefix=${sbindir%/*}
42+ SYSROOT=${prefix%/*}
43+ if [ ! -d "$SYSROOT/usr/share/ca-certificates" ]; then
44+ SYSROOT=
45+ fi
46+fi
47+
48 if [ ! -s "$CERTSCONF" ]
49 then
50 fresh=1
diff --git a/meta/recipes-support/ca-certificates/ca-certificates_20211016.bb b/meta/recipes-support/ca-certificates/ca-certificates_20250419.bb
index 99abe60613..a11433c9da 100644
--- a/meta/recipes-support/ca-certificates/ca-certificates_20211016.bb
+++ b/meta/recipes-support/ca-certificates/ca-certificates_20250419.bb
@@ -14,19 +14,13 @@ DEPENDS:class-nativesdk = "openssl-native"
14# Need rehash from openssl and run-parts from debianutils 14# Need rehash from openssl and run-parts from debianutils
15PACKAGE_WRITE_DEPS += "openssl-native debianutils-native" 15PACKAGE_WRITE_DEPS += "openssl-native debianutils-native"
16 16
17SRCREV = "07de54fdcc5806bde549e1edf60738c6bccf50e8" 17SRC_URI[sha256sum] = "33b44ef78653ecd3f0f2f13e5bba6be466be2e7da72182f737912b81798ba5d2"
18 18SRC_URI = "${DEBIAN_MIRROR}/main/c/ca-certificates/${BPN}_${PV}.tar.xz \
19SRC_URI = "git://salsa.debian.org/debian/ca-certificates.git;protocol=https;branch=master \
20 file://0002-update-ca-certificates-use-SYSROOT.patch \
21 file://0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch \ 19 file://0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch \
22 file://default-sysroot.patch \
23 file://0003-update-ca-certificates-use-relative-symlinks-from-ET.patch \ 20 file://0003-update-ca-certificates-use-relative-symlinks-from-ET.patch \
24 file://0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch \ 21 file://0001-Revert-mozilla-certdata2pem.py-print-a-warning-for-e.patch \
25 " 22 "
26UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+)" 23S = "${UNPACKDIR}/ca-certificates"
27
28S = "${WORKDIR}/git"
29
30inherit allarch 24inherit allarch
31 25
32EXTRA_OEMAKE = "\ 26EXTRA_OEMAKE = "\
@@ -66,7 +60,8 @@ do_install:append:class-target () {
66} 60}
67 61
68pkg_postinst:${PN}:class-target () { 62pkg_postinst:${PN}:class-target () {
69 SYSROOT="$D" $D${sbindir}/update-ca-certificates 63 [ -n "$D" ] && sysroot_args="--sysroot $D"
64 $D${sbindir}/update-ca-certificates $sysroot_args
70} 65}
71 66
72CONFFILES:${PN} += "${sysconfdir}/ca-certificates.conf" 67CONFFILES:${PN} += "${sysconfdir}/ca-certificates.conf"
@@ -75,11 +70,11 @@ CONFFILES:${PN} += "${sysconfdir}/ca-certificates.conf"
75# we just run update-ca-certificate from do_install() for nativesdk. 70# we just run update-ca-certificate from do_install() for nativesdk.
76CONFFILES:${PN}:append:class-nativesdk = " ${sysconfdir}/ssl/certs/ca-certificates.crt" 71CONFFILES:${PN}:append:class-nativesdk = " ${sysconfdir}/ssl/certs/ca-certificates.crt"
77do_install:append:class-nativesdk () { 72do_install:append:class-nativesdk () {
78 SYSROOT="${D}${SDKPATHNATIVE}" ${D}${sbindir}/update-ca-certificates 73 ${D}${sbindir}/update-ca-certificates --sysroot ${D}${SDKPATHNATIVE}
79} 74}
80 75
81do_install:append:class-native () { 76do_install:append:class-native () {
82 SYSROOT="${D}${base_prefix}" ${D}${sbindir}/update-ca-certificates 77 ${D}${sbindir}/update-ca-certificates --sysroot ${D}${base_prefix}
83} 78}
84 79
85RDEPENDS:${PN}:append:class-target = " openssl-bin openssl" 80RDEPENDS:${PN}:append:class-target = " openssl-bin openssl"
diff --git a/meta/recipes-support/consolekit/consolekit_0.4.6.bb b/meta/recipes-support/consolekit/consolekit_0.4.6.bb
index 346bd60e4d..acef3483bb 100644
--- a/meta/recipes-support/consolekit/consolekit_0.4.6.bb
+++ b/meta/recipes-support/consolekit/consolekit_0.4.6.bb
@@ -20,10 +20,9 @@ SRC_URI = "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${PV}.
20 file://add-polkit-configure-argument.patch \ 20 file://add-polkit-configure-argument.patch \
21" 21"
22 22
23SRC_URI[md5sum] = "611792b4d616253a5bdec9175f8b7678"
24SRC_URI[sha256sum] = "b41d17e06f80059589fbeefe96ad07bcc564c49e65516da1caf975146475565c" 23SRC_URI[sha256sum] = "b41d17e06f80059589fbeefe96ad07bcc564c49e65516da1caf975146475565c"
25 24
26S = "${WORKDIR}/ConsoleKit-${PV}" 25S = "${UNPACKDIR}/ConsoleKit-${PV}"
27 26
28PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd polkit', d)}" 27PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd polkit', d)}"
29 28
@@ -31,6 +30,9 @@ PACKAGECONFIG[pam] = "--enable-pam-module --with-pam-module-dir=${base_libdir}/s
31PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit" 30PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit"
32PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}/,--with-systemdsystemunitdir=" 31PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}/,--with-systemdsystemunitdir="
33 32
33# Fails to build with GCC14 with incompatible pointer error warning being treated as error
34CFLAGS += "-Wno-error=incompatible-pointer-types"
35
34FILES:${PN} += "${exec_prefix}/lib/ConsoleKit \ 36FILES:${PN} += "${exec_prefix}/lib/ConsoleKit \
35 ${libdir}/ConsoleKit ${systemd_unitdir} ${base_libdir} \ 37 ${libdir}/ConsoleKit ${systemd_unitdir} ${base_libdir} \
36 ${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*" 38 ${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*"
diff --git a/meta/recipes-support/curl/curl/disable-tests b/meta/recipes-support/curl/curl/disable-tests
index 259576fd01..e69de29bb2 100644
--- a/meta/recipes-support/curl/curl/disable-tests
+++ b/meta/recipes-support/curl/curl/disable-tests
@@ -1,41 +0,0 @@
1# Intermittently fails e.g. https://autobuilder.yocto.io/pub/non-release/20231220-28/testresults/qemux86-64-ptest/curl.log
2# https://autobuilder.yocto.io/pub/non-release/20231220-27/testresults/qemux86-64-ptest/curl.log
3337
4# These CRL test (alt-avc) are failing
5356
6412
7413
8# These CRL tests are scanning docs
9971
10# Intermittently hangs e.g http://autobuilder.yocto.io/pub/non-release/20231228-18/testresults/qemux86-64-ptest/curl.log
111091
12# Intermittently hangs e.g https://autobuilder.yocto.io/pub/non-release/20231220-27/testresults/qemux86-64-ptest/curl.log
131096
14# These CRL tests are scanning docs
151119
161132
171135
181478
19# These CRL tests are scanning headers
201167
211477
22# These CRL tests are scanning man pages
231139
241140
251173
261177
27# This CRL test is looking for m4 files
281165
29# This CRL test is looking for src files
301185
31# This test is scanning the source tree
321222
33# These CRL tests need --libcurl option to be enabled
341279
351400
361401
371402
381403
391404
401405
411465
diff --git a/meta/recipes-support/curl/curl/environment.d-curl.sh b/meta/recipes-support/curl/curl/environment.d-curl.sh
new file mode 100644
index 0000000000..7c2971b3da
--- /dev/null
+++ b/meta/recipes-support/curl/curl/environment.d-curl.sh
@@ -0,0 +1,19 @@
1# Respect host env CURL_CA_BUNDLE/CURL_CA_PATH first, then auto-detected host cert, then cert in buildtools
2# CAFILE/CAPATH is auto-deteced when source buildtools
3if [ -z "$CURL_CA_PATH" ]; then
4 if [ -n "$CAFILE" ];then
5 export CURL_CA_BUNDLE="$CAFILE"
6 elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
7 export CURL_CA_BUNDLE="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt"
8 fi
9fi
10
11if [ -z "$CURL_CA_PATH" ]; then
12 if [ -n "$CAPATH" ];then
13 export CURL_CA_PATH="$CAPATH"
14 elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
15 export CURL_CA_PATH="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs"
16 fi
17fi
18
19export BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITIONS:-} CURL_CA_BUNDLE CURL_CA_PATH"
diff --git a/meta/recipes-support/curl/curl/no-test-timeout.patch b/meta/recipes-support/curl/curl/no-test-timeout.patch
index 7122b6f043..5b901a6fe9 100644
--- a/meta/recipes-support/curl/curl/no-test-timeout.patch
+++ b/meta/recipes-support/curl/curl/no-test-timeout.patch
@@ -14,7 +14,7 @@ diff --git a/tests/servers.pm b/tests/servers.pm
14index d4472d5..9999938 100644 14index d4472d5..9999938 100644
15--- a/tests/servers.pm 15--- a/tests/servers.pm
16+++ b/tests/servers.pm 16+++ b/tests/servers.pm
17@@ -120,7 +120,7 @@ my $sshdverstr; # for socks server, ssh daemon version string 17@@ -124,7 +124,7 @@ my $sshdverstr; # for socks server, ssh daemon version string
18 my $sshderror; # for socks server, ssh daemon version error 18 my $sshderror; # for socks server, ssh daemon version error
19 my %doesntrun; # servers that don't work, identified by pidfile 19 my %doesntrun; # servers that don't work, identified by pidfile
20 my %PORT = (nolisten => 47); # port we use for a local non-listening service 20 my %PORT = (nolisten => 47); # port we use for a local non-listening service
diff --git a/meta/recipes-support/curl/curl/run-ptest b/meta/recipes-support/curl/curl/run-ptest
index 3d25f3d90b..597cf92dbb 100644
--- a/meta/recipes-support/curl/curl/run-ptest
+++ b/meta/recipes-support/curl/curl/run-ptest
@@ -7,5 +7,13 @@ cd tests
7# Use automake-style output 7# Use automake-style output
8# Run four tests in parallel 8# Run four tests in parallel
9# Print log output on failure 9# Print log output on failure
10
10# Don't run the flaky or timing dependent tests 11# Don't run the flaky or timing dependent tests
11./runtests.pl -a -n -am -j4 -p !flaky !timing-dependent 12# Until https://github.com/curl/curl/issues/13350 is resolved, don't run FTP tests
13# We don't enable --libcurl
14# Don't assume curl-config exists
15# We don't have the source tree
16./runtests.pl \
17 -a -c curl -vc curl -n -am -j4 -p \
18 !flaky !timing-dependent !FTP \
19 !--libcurl !curl-config !source\ analysis !checksrc !documentation
diff --git a/meta/recipes-support/curl/curl_8.7.1.bb b/meta/recipes-support/curl/curl_8.14.1.bb
index c6654bbad6..08ad9cdb17 100644
--- a/meta/recipes-support/curl/curl_8.7.1.bb
+++ b/meta/recipes-support/curl/curl_8.14.1.bb
@@ -7,7 +7,7 @@ HOMEPAGE = "https://curl.se/"
7BUGTRACKER = "https://github.com/curl/curl/issues" 7BUGTRACKER = "https://github.com/curl/curl/issues"
8SECTION = "console/network" 8SECTION = "console/network"
9LICENSE = "curl" 9LICENSE = "curl"
10LIC_FILES_CHKSUM = "file://COPYING;md5=eed2e5088e1ac619c9a1c747da291d75" 10LIC_FILES_CHKSUM = "file://COPYING;md5=72f4e9890e99e68d77b7e40703d789b8"
11 11
12SRC_URI = " \ 12SRC_URI = " \
13 https://curl.se/download/${BP}.tar.xz \ 13 https://curl.se/download/${BP}.tar.xz \
@@ -15,19 +15,23 @@ SRC_URI = " \
15 file://disable-tests \ 15 file://disable-tests \
16 file://no-test-timeout.patch \ 16 file://no-test-timeout.patch \
17" 17"
18SRC_URI[sha256sum] = "6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd" 18
19SRC_URI:append:class-nativesdk = " \
20 file://environment.d-curl.sh \
21"
22
23SRC_URI[sha256sum] = "f4619a1e2474c4bbfedc88a7c2191209c8334b48fa1f4e53fd584cc12e9120dd"
19 24
20# Curl has used many names over the years... 25# Curl has used many names over the years...
21CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl" 26CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
27CVE_STATUS[CVE-2024-32928] = "ignored: CURLOPT_SSL_VERIFYPEER was disabled on google cloud services causing a potential man in the middle attack"
22 28
23inherit autotools pkgconfig binconfig multilib_header ptest 29inherit autotools pkgconfig binconfig multilib_header ptest
24 30
25# Entropy source for random PACKAGECONFIG option 31COMMON_PACKAGECONFIG = "basic-auth bearer-auth digest-auth ipfs negotiate-auth openssl proxy threaded-resolver verbose zlib"
26RANDOM ?= "/dev/urandom" 32PACKAGECONFIG ??= "${COMMON_PACKAGECONFIG} ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws libidn"
27 33PACKAGECONFIG:class-native = "${COMMON_PACKAGECONFIG} ipv6"
28PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws basic-auth bearer-auth digest-auth negotiate-auth libidn openssl proxy random threaded-resolver verbose zlib" 34PACKAGECONFIG:class-nativesdk = "${COMMON_PACKAGECONFIG} ipv6"
29PACKAGECONFIG:class-native = "ipv6 openssl proxy random threaded-resolver verbose zlib"
30PACKAGECONFIG:class-nativesdk = "ipv6 openssl proxy random threaded-resolver verbose zlib"
31 35
32# 'ares' and 'threaded-resolver' are mutually exclusive 36# 'ares' and 'threaded-resolver' are mutually exclusive
33PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver" 37PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
@@ -44,6 +48,7 @@ PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
44PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," 48PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
45PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," 49PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
46PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," 50PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
51PACKAGECONFIG[ipfs] = "--enable-ipfs,--disable-ipfs,"
47PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth" 52PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth"
48PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" 53PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
49PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap" 54PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
@@ -58,7 +63,6 @@ PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
58PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" 63PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
59PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," 64PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
60PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," 65PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy,"
61PACKAGECONFIG[random] = "--with-random=${RANDOM},--without-random"
62PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" 66PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
63PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," 67PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
64PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," 68PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
@@ -67,16 +71,19 @@ PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
67PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," 71PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
68PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares" 72PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
69PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" 73PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose"
74PACKAGECONFIG[websockets] = "--enable-websockets,--disable-websockets"
70PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" 75PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
71PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd" 76PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
72 77
73EXTRA_OECONF = " \ 78EXTRA_OECONF = " \
74 --disable-libcurl-option \ 79 --disable-libcurl-option \
75 --disable-ntlm-wb \
76 --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
77 --without-libpsl \ 80 --without-libpsl \
78 --enable-optimize \ 81 --enable-optimize \
79 ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \ 82 ${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \
83 WATT_ROOT=${STAGING_DIR_TARGET}${prefix} \
84"
85EXTRA_OECONF:append:class-target = " \
86 --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
80" 87"
81 88
82fix_absolute_paths () { 89fix_absolute_paths () {
@@ -95,6 +102,9 @@ do_install:append:class-target() {
95 102
96do_install:append:class-nativesdk() { 103do_install:append:class-nativesdk() {
97 fix_absolute_paths 104 fix_absolute_paths
105
106 mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
107 install -m 644 ${UNPACKDIR}/environment.d-curl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/curl.sh
98} 108}
99 109
100do_compile_ptest() { 110do_compile_ptest() {
@@ -102,31 +112,43 @@ do_compile_ptest() {
102} 112}
103 113
104do_install_ptest() { 114do_install_ptest() {
105 cat ${WORKDIR}/disable-tests >> ${S}/tests/data/DISABLED 115 install -d ${D}${PTEST_PATH}/tests
106 rm -f ${B}/tests/configurehelp.pm 116 cp ${S}/tests/*.p[lmy] ${D}${PTEST_PATH}/tests/
107 cp -rf ${B}/tests ${D}${PTEST_PATH} 117
108 rm -f ${D}${PTEST_PATH}/tests/libtest/.libs/libhostname.la 118 install -d ${D}${PTEST_PATH}/tests/libtest
109 rm -f ${D}${PTEST_PATH}/tests/libtest/libhostname.la 119 for name in $(makefile-getvar ${B}/tests/libtest/Makefile noinst_PROGRAMS noinst_LTLIBRARIES); do
110 mv ${D}${PTEST_PATH}/tests/libtest/.libs/* ${D}${PTEST_PATH}/tests/libtest/ 120 ${B}/libtool --mode=install install ${B}/tests/libtest/$name ${D}${PTEST_PATH}/tests/libtest
111 mv ${D}${PTEST_PATH}/tests/libtest/libhostname.so ${D}${PTEST_PATH}/tests/libtest/.libs/ 121 done
112 mv ${D}${PTEST_PATH}/tests/http/clients/.libs/* ${D}${PTEST_PATH}/tests/http/clients/ 122 rm -f ${D}${PTEST_PATH}/tests/libtest/libhostname.la
113 cp -rf ${S}/tests ${D}${PTEST_PATH} 123
114 find ${D}${PTEST_PATH}/ -type f -name Makefile.am -o -name Makefile.in -o -name Makefile -delete 124 install -d ${D}${PTEST_PATH}/tests/server
125 for name in $(makefile-getvar ${B}/tests/server/Makefile noinst_PROGRAMS); do
126 ${B}/libtool --mode=install install ${B}/tests/server/$name ${D}${PTEST_PATH}/tests/server
127 done
128
115 install -d ${D}${PTEST_PATH}/src 129 install -d ${D}${PTEST_PATH}/src
116 ln -sf ${bindir}/curl ${D}${PTEST_PATH}/src/curl 130 install -m 755 ${B}/src/curlinfo ${D}${PTEST_PATH}/src
117 cp -rf ${D}${bindir}/curl-config ${D}${PTEST_PATH} 131
132 cp -r ${S}/tests/data ${D}${PTEST_PATH}/tests/
133
134 # More tests that we disable for automated QA as they're not reliable
135 cat ${UNPACKDIR}/disable-tests >>${D}${PTEST_PATH}/tests/data/DISABLED
118} 136}
119 137
138DEPENDS:append:class-target = "${@bb.utils.contains('PTEST_ENABLED', '1', ' openssl-native', '', d)}"
139
120RDEPENDS:${PN}-ptest += " \ 140RDEPENDS:${PN}-ptest += " \
121 bash \ 141 locale-base-en-us \
122 perl-module-b \ 142 perl-module-b \
123 perl-module-base \ 143 perl-module-base \
124 perl-module-cwd \ 144 perl-module-cwd \
125 perl-module-digest \ 145 perl-module-digest \
126 perl-module-digest-md5 \ 146 perl-module-digest-md5 \
147 perl-module-digest-sha \
127 perl-module-file-basename \ 148 perl-module-file-basename \
128 perl-module-file-spec \ 149 perl-module-file-spec \
129 perl-module-file-temp \ 150 perl-module-file-temp \
151 perl-module-i18n-langinfo \
130 perl-module-io-socket \ 152 perl-module-io-socket \
131 perl-module-ipc-open2 \ 153 perl-module-ipc-open2 \
132 perl-module-list-util \ 154 perl-module-list-util \
@@ -134,7 +156,6 @@ RDEPENDS:${PN}-ptest += " \
134 perl-module-storable \ 156 perl-module-storable \
135 perl-module-time-hires \ 157 perl-module-time-hires \
136" 158"
137RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us"
138 159
139PACKAGES =+ "lib${BPN}" 160PACKAGES =+ "lib${BPN}"
140 161
@@ -142,6 +163,7 @@ FILES:lib${BPN} = "${libdir}/lib*.so.*"
142RRECOMMENDS:lib${BPN} += "ca-certificates" 163RRECOMMENDS:lib${BPN} += "ca-certificates"
143 164
144FILES:${PN} += "${datadir}/zsh" 165FILES:${PN} += "${datadir}/zsh"
166FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/curl.sh"
145 167
146inherit multilib_script 168inherit multilib_script
147MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" 169MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config"
diff --git a/meta/recipes-support/db/db_5.3.28.bb b/meta/recipes-support/db/db_5.3.28.bb
index a99d5cea62..8d2af1f5dc 100644
--- a/meta/recipes-support/db/db_5.3.28.bb
+++ b/meta/recipes-support/db/db_5.3.28.bb
@@ -33,7 +33,6 @@ SRC_URI += "file://fix-parallel-build.patch \
33UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/db5.3/" 33UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/db5.3/"
34UPSTREAM_CHECK_REGEX = "db5\.3_(?P<pver>\d+(\.\d+)+).+\.orig" 34UPSTREAM_CHECK_REGEX = "db5\.3_(?P<pver>\d+(\.\d+)+).+\.orig"
35 35
36SRC_URI[md5sum] = "b99454564d5b4479750567031d66fe24"
37SRC_URI[sha256sum] = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628" 36SRC_URI[sha256sum] = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628"
38 37
39LIC_FILES_CHKSUM = "file://LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955" 38LIC_FILES_CHKSUM = "file://LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955"
@@ -116,3 +115,8 @@ INSANE_SKIP:${PN} = "dev-so"
116INSANE_SKIP:${PN}-cxx = "dev-so" 115INSANE_SKIP:${PN}-cxx = "dev-so"
117 116
118BBCLASSEXTEND = "native nativesdk" 117BBCLASSEXTEND = "native nativesdk"
118
119# many configure tests are failing with gcc-14
120# -Wno-error=incompatible-pointer-types needed for gcc-15
121CFLAGS += "-Wno-error=implicit-int -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types"
122BUILD_CFLAGS += "-Wno-error=implicit-int -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types"
diff --git a/meta/recipes-support/debianutils/debianutils_5.17.bb b/meta/recipes-support/debianutils/debianutils_5.23.1.bb
index c5f25bae40..96ea9063bf 100644
--- a/meta/recipes-support/debianutils/debianutils_5.17.bb
+++ b/meta/recipes-support/debianutils/debianutils_5.23.1.bb
@@ -8,21 +8,18 @@ SECTION = "base"
8LICENSE = "GPL-2.0-only & SMAIL_GPL" 8LICENSE = "GPL-2.0-only & SMAIL_GPL"
9LIC_FILES_CHKSUM = "file://debian/copyright;md5=4b667f30411d21bc8fd7db85d502a8e9" 9LIC_FILES_CHKSUM = "file://debian/copyright;md5=4b667f30411d21bc8fd7db85d502a8e9"
10 10
11SRC_URI = "git://salsa.debian.org/debian/debianutils.git;protocol=https;branch=master \ 11SRC_URI = "git://salsa.debian.org/debian/debianutils.git;protocol=https;branch=master;tag=debian/${PV} \
12 " 12 "
13 13
14SRCREV = "baf12e98a02883d1b76081e32f2185ee3497570b" 14SRCREV = "ab0eaf33b783ba578773af2557753d2b973ba5bb"
15 15
16inherit autotools update-alternatives 16inherit autotools update-alternatives
17 17
18S = "${WORKDIR}/git"
19
20# Disable po4a (translated manpages) sub-directory, as that requires po4a to build 18# Disable po4a (translated manpages) sub-directory, as that requires po4a to build
21do_configure:prepend() { 19do_configure:prepend() {
22 sed -i -e 's:po4a::g' ${S}/Makefile.am 20 sed -i -e 's:po4a::g' ${S}/Makefile.am
23} 21}
24 22
25
26do_install:append() { 23do_install:append() {
27 if [ "${base_bindir}" != "${bindir}" ]; then 24 if [ "${base_bindir}" != "${bindir}" ]; then
28 # Debian places some utils into ${base_bindir} as does busybox 25 # Debian places some utils into ${base_bindir} as does busybox
diff --git a/meta/recipes-support/diffoscope/diffoscope_260.bb b/meta/recipes-support/diffoscope/diffoscope_298.bb
index 297a53fb53..4a50059c99 100644
--- a/meta/recipes-support/diffoscope/diffoscope_260.bb
+++ b/meta/recipes-support/diffoscope/diffoscope_298.bb
@@ -12,7 +12,7 @@ PYPI_PACKAGE = "diffoscope"
12 12
13inherit pypi setuptools3 13inherit pypi setuptools3
14 14
15SRC_URI[sha256sum] = "405a55502c8b2c988e46c0800d6a93e8e4e7632c1542b0a540dda50aeea41dac" 15SRC_URI[sha256sum] = "9644b7e711df71f13c5f50f3d1353c1e6d09f462d342d9771576e75f3dd8c3e1"
16 16
17RDEPENDS:${PN} += "\ 17RDEPENDS:${PN} += "\
18 binutils \ 18 binutils \
@@ -29,9 +29,6 @@ RDEPENDS:${PN} += "\
29 vim \ 29 vim \
30 " 30 "
31 31
32# Dependencies don't build for musl
33COMPATIBLE_HOST:libc-musl = 'null'
34
35do_install:append:class-native() { 32do_install:append:class-native() {
36 create_wrapper ${D}${bindir}/diffoscope \ 33 create_wrapper ${D}${bindir}/diffoscope \
37 MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \ 34 MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \
diff --git a/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb b/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb
index 06338dd62f..c3803f457b 100644
--- a/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb
+++ b/meta/recipes-support/dos2unix/dos2unix_7.5.2.bb
@@ -13,7 +13,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "dos2unix-(?P<pver>(\d+(\.\d+)+))"
13 13
14SRCREV = "c16a0b31a64c7eb6b2d76960e5144732b57f2993" 14SRCREV = "c16a0b31a64c7eb6b2d76960e5144732b57f2993"
15 15
16S = "${WORKDIR}/git/dos2unix" 16S = "${UNPACKDIR}/${BP}/dos2unix"
17 17
18inherit gettext perlnative 18inherit gettext perlnative
19 19
diff --git a/meta/recipes-support/enchant/enchant2_2.6.9.bb b/meta/recipes-support/enchant/enchant2_2.8.6.bb
index aaf3525ad8..2696fc0f81 100644
--- a/meta/recipes-support/enchant/enchant2_2.6.9.bb
+++ b/meta/recipes-support/enchant/enchant2_2.8.6.bb
@@ -2,8 +2,8 @@ SUMMARY = "Enchant Spell checker API Library"
2DESCRIPTION = "A library (and command-line program) that wraps a number of \ 2DESCRIPTION = "A library (and command-line program) that wraps a number of \
3different spelling libraries and programs with a consistent interface." 3different spelling libraries and programs with a consistent interface."
4SECTION = "libs" 4SECTION = "libs"
5HOMEPAGE = "https://abiword.github.io/enchant/" 5HOMEPAGE = "https://rrthomas.github.io/enchant/"
6BUGTRACKER = "https://github.com/AbiWord/enchant/issues/" 6BUGTRACKER = "https://github.com/rrthomas/enchant/issues"
7LICENSE = "LGPL-2.1-or-later" 7LICENSE = "LGPL-2.1-or-later"
8LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" 8LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
9 9
@@ -12,11 +12,11 @@ DEPENDS = "glib-2.0 groff-native"
12inherit autotools pkgconfig github-releases 12inherit autotools pkgconfig github-releases
13 13
14SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/enchant-${PV}.tar.gz" 14SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/enchant-${PV}.tar.gz"
15SRC_URI[sha256sum] = "d9a5a10dc9b38a43b3a0fa22c76ed6ebb7e09eb535aff62954afcdbd40efff6b" 15SRC_URI[sha256sum] = "c4cd0889d8aff8248fc3913de5a83907013962f0e1895030a3836468cd40af5b"
16 16
17GITHUB_BASE_URI = "https://github.com/AbiWord/enchant/releases" 17GITHUB_BASE_URI = "https://github.com/rrthomas/enchant/releases"
18 18
19S = "${WORKDIR}/enchant-${PV}" 19S = "${UNPACKDIR}/enchant-${PV}"
20 20
21PACKAGECONFIG ??= "aspell" 21PACKAGECONFIG ??= "aspell"
22PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell" 22PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell"
diff --git a/meta/recipes-support/fribidi/fribidi_1.0.13.bb b/meta/recipes-support/fribidi/fribidi_1.0.16.bb
index 5d0476a375..9f75446da2 100644
--- a/meta/recipes-support/fribidi/fribidi_1.0.13.bb
+++ b/meta/recipes-support/fribidi/fribidi_1.0.16.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
11 11
12SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.xz \ 12SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.xz \
13 " 13 "
14SRC_URI[sha256sum] = "7fa16c80c81bd622f7b198d31356da139cc318a63fc7761217af4130903f54a2" 14SRC_URI[sha256sum] = "1b1cde5b235d40479e91be2f0e88a309e3214c8ab470ec8a2744d82a5a9ea05c"
15 15
16inherit meson lib_package pkgconfig github-releases 16inherit meson lib_package pkgconfig github-releases
17 17
diff --git a/meta/recipes-support/gdbm/files/ptest.patch b/meta/recipes-support/gdbm/files/ptest.patch
index 25fb6bb2f4..989f9524bc 100644
--- a/meta/recipes-support/gdbm/files/ptest.patch
+++ b/meta/recipes-support/gdbm/files/ptest.patch
@@ -1,4 +1,4 @@
1From 8bea84a598b51a7ac7e50aa8f0f20857a9b6b07b Mon Sep 17 00:00:00 2001 1From ed0b5a48c7ce59ea971a10c7e522933cf613841a Mon Sep 17 00:00:00 2001
2From: Josep Puigdemont <josep.puigdemont@enea.com> 2From: Josep Puigdemont <josep.puigdemont@enea.com>
3Date: Sun, 4 May 2014 16:02:07 +0200 3Date: Sun, 4 May 2014 16:02:07 +0200
4Subject: [PATCH] Add install-ptest rules. 4Subject: [PATCH] Add install-ptest rules.
@@ -6,14 +6,13 @@ Subject: [PATCH] Add install-ptest rules.
6Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com> 6Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
7Signed-off-by: Maxin B. John <maxin.john@enea.com> 7Signed-off-by: Maxin B. John <maxin.john@enea.com>
8Upstream-Status: Pending 8Upstream-Status: Pending
9
10--- 9---
11 Makefile.am | 5 +++++ 10 Makefile.am | 5 +++++
12 tests/Makefile.am | 12 ++++++++++++ 11 tests/Makefile.am | 12 ++++++++++++
13 2 files changed, 17 insertions(+) 12 2 files changed, 17 insertions(+)
14 13
15diff --git a/Makefile.am b/Makefile.am 14diff --git a/Makefile.am b/Makefile.am
16index 59e2643..5f3ceb0 100644 15index d0b46ea..6c57b11 100644
17--- a/Makefile.am 16--- a/Makefile.am
18+++ b/Makefile.am 17+++ b/Makefile.am
19@@ -64,3 +64,8 @@ ChangeLog: 18@@ -64,3 +64,8 @@ ChangeLog:
@@ -26,10 +25,10 @@ index 59e2643..5f3ceb0 100644
26+ $(MAKE) -C $$subdir DESTDIR=$(DESTDIR)/$$subdir $@; \ 25+ $(MAKE) -C $$subdir DESTDIR=$(DESTDIR)/$$subdir $@; \
27+ done 26+ done
28diff --git a/tests/Makefile.am b/tests/Makefile.am 27diff --git a/tests/Makefile.am b/tests/Makefile.am
29index fac6826..5dc2091 100644 28index eb071ac..9d14fe8 100644
30--- a/tests/Makefile.am 29--- a/tests/Makefile.am
31+++ b/tests/Makefile.am 30+++ b/tests/Makefile.am
32@@ -143,3 +143,15 @@ d_creat_ce_LDADD = ../src/libgdbm.la ../compat/libgdbm_compat.la 31@@ -145,3 +145,15 @@ d_creat_ce_LDADD = ../src/libgdbm.la ../compat/libgdbm_compat.la
33 t_wordwrap_LDADD = ../tools/libgdbmapp.a 32 t_wordwrap_LDADD = ../tools/libgdbmapp.a
34 33
35 SUBDIRS = gdbmtool 34 SUBDIRS = gdbmtool
@@ -45,6 +44,3 @@ index fac6826..5dc2091 100644
45+ $(INSTALL_PROGRAM) $$file $(DESTDIR) ; \ 44+ $(INSTALL_PROGRAM) $$file $(DESTDIR) ; \
46+ fi \ 45+ fi \
47+ done 46+ done
48--
492.25.1
50
diff --git a/meta/recipes-support/gdbm/gdbm_1.23.bb b/meta/recipes-support/gdbm/gdbm_1.24.bb
index a08079741d..f400462a7a 100644
--- a/meta/recipes-support/gdbm/gdbm_1.23.bb
+++ b/meta/recipes-support/gdbm/gdbm_1.24.bb
@@ -7,13 +7,12 @@ SECTION = "libs"
7LICENSE = "GPL-3.0-only" 7LICENSE = "GPL-3.0-only"
8LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24" 8LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24"
9 9
10
11SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \ 10SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \
12 file://run-ptest \ 11 file://run-ptest \
13 file://ptest.patch \ 12 file://ptest.patch \
14 " 13 "
15 14
16SRC_URI[sha256sum] = "74b1081d21fff13ae4bd7c16e5d6e504a4c26f7cde1dca0d963a484174bbcacd" 15SRC_URI[sha256sum] = "695e9827fdf763513f133910bc7e6cfdb9187943a4fec943e57449723d2b8dbf"
17 16
18inherit autotools gettext texinfo lib_package ptest 17inherit autotools gettext texinfo lib_package ptest
19 18
@@ -23,6 +22,9 @@ EXTRA_OECONF = "--enable-libgdbm-compat --without-readline"
23# Stop presence of dbm/nbdm on the host contaminating builds 22# Stop presence of dbm/nbdm on the host contaminating builds
24CACHED_CONFIGUREVARS += "ac_cv_lib_ndbm_main=no ac_cv_lib_dbm_main=no" 23CACHED_CONFIGUREVARS += "ac_cv_lib_ndbm_main=no ac_cv_lib_dbm_main=no"
25 24
25# Not yet ready for C23
26CFLAGS += "-std=gnu11"
27
26BBCLASSEXTEND = "native nativesdk" 28BBCLASSEXTEND = "native nativesdk"
27 29
28do_install:append () { 30do_install:append () {
diff --git a/meta/recipes-support/gmp/gmp/0001-Complete-function-prototype-in-acinclude.m4-for-C23-.patch b/meta/recipes-support/gmp/gmp/0001-Complete-function-prototype-in-acinclude.m4-for-C23-.patch
new file mode 100644
index 0000000000..ee199a8373
--- /dev/null
+++ b/meta/recipes-support/gmp/gmp/0001-Complete-function-prototype-in-acinclude.m4-for-C23-.patch
@@ -0,0 +1,25 @@
1From 51a657c827422d2bc284d752dfbcfd2b1311a5bf Mon Sep 17 00:00:00 2001
2From: Marc Glisse <marc.glisse@inria.fr>
3Date: Wed, 29 Jan 2025 22:38:02 +0100
4Subject: [PATCH] Complete function prototype in acinclude.m4 for C23
5 compatibility
6
7Upstream-Status: Backport [https://gmplib.org/repo/gmp/rev/8e7bb4ae7a18]
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 acinclude.m4 | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/acinclude.m4 b/acinclude.m4
14index 9cf9483..787511f 100644
15--- a/acinclude.m4
16+++ b/acinclude.m4
17@@ -609,7 +609,7 @@ GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 1],
18
19 #if defined (__GNUC__) && ! defined (__cplusplus)
20 typedef unsigned long long t1;typedef t1*t2;
21-void g(){}
22+void g(int,t1 const*,t1,t2,t1 const*,int){}
23 void h(){}
24 static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0)
25 {t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;}
diff --git a/meta/recipes-support/gmp/gmp/0001-acinclude.m4-Add-parameter-names-in-prototype-for-g.patch b/meta/recipes-support/gmp/gmp/0001-acinclude.m4-Add-parameter-names-in-prototype-for-g.patch
new file mode 100644
index 0000000000..ae2411fd1b
--- /dev/null
+++ b/meta/recipes-support/gmp/gmp/0001-acinclude.m4-Add-parameter-names-in-prototype-for-g.patch
@@ -0,0 +1,50 @@
1From 1744e433a16fb39a55c4c771b8ecb02246aa5b99 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 15 Mar 2025 09:40:06 -0700
4Subject: [PATCH] acinclude.m4: Add parameter names in prototype for g().
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9This allows it to compile with older gcc e.g. gcc-10
10which does not have allow parameter name omission, it results
11in
12
13a.c: In function ‘g’:
14a.c:3:8: error: parameter name omitted
15 3 | void g(int,t1 const*,t1,t2,t1 const*,int){}
16 | ^~~
17
18this was added to gcc via [1] thats why it is supported in
19newer gcc.
20
21Adding the parameter names make it compatible with
22old and new gcc
23
24[1] https://gcc.gnu.org/pipermail/gcc-cvs/2020-October/336068.html
25
26Upstream-Status: Submitted [https://gmplib.org/list-archives/gmp-devel/2025-March/006294.html]
27Signed-off-by: Khem Raj <raj.khem@gmail.com>
28---
29ChangeLog
30
312025-03-15 Khem Raj <raj.khem@gmail.com>
32
33 * acinclude.m4: Add parameter names to function prototype.
34
35 acinclude.m4 | 2 +-
36 1 file changed, 1 insertion(+), 1 deletion(-)
37
38diff --git a/acinclude.m4 b/acinclude.m4
39index 4fca12de2..b9d1eacfe 100644
40--- a/acinclude.m4
41+++ b/acinclude.m4
42@@ -609,7 +609,7 @@ GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 1],
43
44 #if defined (__GNUC__) && ! defined (__cplusplus)
45 typedef unsigned long long t1;typedef t1*t2;
46-void g(int,t1 const*,t1,t2,t1 const*,int){}
47+void g(int a,t1 const* b,t1 c,t2 d,t1 const* e,int f){}
48 void h(){}
49 static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0)
50 {t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;}
diff --git a/meta/recipes-support/gmp/gmp_6.3.0.bb b/meta/recipes-support/gmp/gmp_6.3.0.bb
index fd4aec92fd..8f18bdca1b 100644
--- a/meta/recipes-support/gmp/gmp_6.3.0.bb
+++ b/meta/recipes-support/gmp/gmp_6.3.0.bb
@@ -14,11 +14,11 @@ SRC_URI = "https://gmplib.org/download/${BPN}/${BP}${REVISION}.tar.bz2 \
14 file://use-includedir.patch \ 14 file://use-includedir.patch \
15 file://0001-Append-the-user-provided-flags-to-the-auto-detected-.patch \ 15 file://0001-Append-the-user-provided-flags-to-the-auto-detected-.patch \
16 file://0001-confiure.ac-Believe-the-cflags-from-environment.patch \ 16 file://0001-confiure.ac-Believe-the-cflags-from-environment.patch \
17 file://0001-Complete-function-prototype-in-acinclude.m4-for-C23-.patch \
18 file://0001-acinclude.m4-Add-parameter-names-in-prototype-for-g.patch \
17 " 19 "
18SRC_URI[sha256sum] = "ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb" 20SRC_URI[sha256sum] = "ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb"
19 21
20acpaths = ""
21
22EXTRA_OECONF += " --enable-cxx=detect" 22EXTRA_OECONF += " --enable-cxx=detect"
23EXTRA_OECONF:append:mipsarchr6 = " --disable-assembly" 23EXTRA_OECONF:append:mipsarchr6 = " --disable-assembly"
24 24
diff --git a/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb
index 1173dd4af3..4fcad4814b 100644
--- a/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb
+++ b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2021.1.bb
@@ -16,8 +16,6 @@ SRCREV = "e346cd4ed2e2102c9b195b614f3c642d23f5f6e7"
16 16
17DEPENDS = "glib-2.0" 17DEPENDS = "glib-2.0"
18 18
19S = "${WORKDIR}/git"
20
21inherit autotools pkgconfig 19inherit autotools pkgconfig
22 20
23PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" 21PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
diff --git a/meta/recipes-support/gnupg/drop-unknown-suffix.inc b/meta/recipes-support/gnupg/drop-unknown-suffix.inc
new file mode 100644
index 0000000000..dc8f31869c
--- /dev/null
+++ b/meta/recipes-support/gnupg/drop-unknown-suffix.inc
@@ -0,0 +1,29 @@
1#
2# Copyright OpenEmbedded Contributors
3#
4# SPDX-License-Identifier: MIT
5#
6
7#
8# This .inc file is used to remove unknown suffix in runtime version
9# for gnupg and its related packages.
10#
11# In these packages, if autogen.sh is run outside of a git repo,
12# the find-version function always assumes that the package is a
13# beta version and adds the suffix '-unknown' to the version number.
14#
15# This .inc file modifies autogen.sh to:
16# 1. Replace beta=yes with beta=no
17# 2. Replace tmp="-unknown" with tmp=""
18#
19
20do_configure:prepend() {
21 if [ -f ${S}/autogen.sh ]; then
22 sed -i \
23 -e 's/^\([[:space:]]*\)beta=yes$/\1beta=no/' \
24 -e 's/^\([[:space:]]*\)tmp="-unknown"$/\1tmp=""/' \
25 ${S}/autogen.sh
26 else
27 bbwarn "autogen.sh not found in ${S}."
28 fi
29}
diff --git a/meta/recipes-support/gnupg/gnupg/0001-Woverride-init-is-not-needed-with-gcc-9.patch b/meta/recipes-support/gnupg/gnupg/0001-Woverride-init-is-not-needed-with-gcc-9.patch
index 83195b5bd4..6299eb95ce 100644
--- a/meta/recipes-support/gnupg/gnupg/0001-Woverride-init-is-not-needed-with-gcc-9.patch
+++ b/meta/recipes-support/gnupg/gnupg/0001-Woverride-init-is-not-needed-with-gcc-9.patch
@@ -1,4 +1,4 @@
1From e3adc816d2d56dd929016073937ba24e01e03cb8 Mon Sep 17 00:00:00 2001 1From 690faa62529c584cd80c8eaa56210ec1e4a96d7f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 20 Dec 2018 17:37:48 -0800 3Date: Thu, 20 Dec 2018 17:37:48 -0800
4Subject: [PATCH] Woverride-init is not needed with gcc 9 4Subject: [PATCH] Woverride-init is not needed with gcc 9
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
17 1 file changed, 1 insertion(+), 1 deletion(-) 17 1 file changed, 1 insertion(+), 1 deletion(-)
18 18
19diff --git a/dirmngr/dns.h b/dirmngr/dns.h 19diff --git a/dirmngr/dns.h b/dirmngr/dns.h
20index 024d6dcc8..c6e141e16 100644 20index 1f647e1..334acb6 100644
21--- a/dirmngr/dns.h 21--- a/dirmngr/dns.h
22+++ b/dirmngr/dns.h 22+++ b/dirmngr/dns.h
23@@ -139,7 +139,7 @@ DNS_PUBLIC int *dns_debug_p(void); 23@@ -139,7 +139,7 @@ DNS_PUBLIC int *dns_debug_p(void);
@@ -29,6 +29,3 @@ index 024d6dcc8..c6e141e16 100644
29 #define DNS_PRAGMA_PUSH _Pragma("GCC diagnostic push") 29 #define DNS_PRAGMA_PUSH _Pragma("GCC diagnostic push")
30 #define DNS_PRAGMA_QUIET _Pragma("GCC diagnostic ignored \"-Woverride-init\"") 30 #define DNS_PRAGMA_QUIET _Pragma("GCC diagnostic ignored \"-Woverride-init\"")
31 #define DNS_PRAGMA_POP _Pragma("GCC diagnostic pop") 31 #define DNS_PRAGMA_POP _Pragma("GCC diagnostic pop")
32--
332.17.1
34
diff --git a/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch b/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
index f957f6b55e..ed94145833 100644
--- a/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
+++ b/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
@@ -1,4 +1,4 @@
1From 6b581c43bd01f815db78a410fd3814fc5994171e Mon Sep 17 00:00:00 2001 1From c9392c615a95c965dd58b0896cb3b87deafc62a4 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Mon, 22 Jan 2018 18:00:21 +0200 3Date: Mon, 22 Jan 2018 18:00:21 +0200
4Subject: [PATCH] configure.ac: use a custom value for the location of 4Subject: [PATCH] configure.ac: use a custom value for the location of
@@ -8,16 +8,15 @@ This should avoid clashes with the host gpg-agent observed on autobuilders.
8 8
9Upstream-Status: Inappropriate [oe-core specific, and only for -native] 9Upstream-Status: Inappropriate [oe-core specific, and only for -native]
10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 10Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11
12--- 11---
13 configure.ac | 2 +- 12 configure.ac | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-) 13 1 file changed, 1 insertion(+), 1 deletion(-)
15 14
16diff --git a/configure.ac b/configure.ac 15diff --git a/configure.ac b/configure.ac
17index 26d7f7b..e953c2e 100644 16index 23a9101..3e10021 100644
18--- a/configure.ac 17--- a/configure.ac
19+++ b/configure.ac 18+++ b/configure.ac
20@@ -1921,7 +1921,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf", 19@@ -1908,7 +1908,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf",
21 20
22 AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool]) 21 AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool])
23 22
diff --git a/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch b/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch
index 0e58fd4c4d..2d23ca1e66 100644
--- a/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch
+++ b/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch
@@ -1,4 +1,4 @@
1From d9048788d906774b1475c3bb1b17e22455c2add4 Mon Sep 17 00:00:00 2001 1From 9f7cf2e4770697c24f8d24ce9f79b8548120bbf8 Mon Sep 17 00:00:00 2001
2From: Saul Wold <sgw@linux.intel.com> 2From: Saul Wold <sgw@linux.intel.com>
3Date: Wed, 16 Aug 2017 11:16:30 +0800 3Date: Wed, 16 Aug 2017 11:16:30 +0800
4Subject: [PATCH] use pkgconfig instead of npth config 4Subject: [PATCH] use pkgconfig instead of npth config
@@ -9,7 +9,6 @@ Signed-off-by: Saul Wold <sgw@linux.intel.com>
9 9
10Rebase to 2.1.23 10Rebase to 2.1.23
11Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 11Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
12
13--- 12---
14 m4/npth.m4 | 53 ++++++++--------------------------------------------- 13 m4/npth.m4 | 53 ++++++++---------------------------------------------
15 1 file changed, 8 insertions(+), 45 deletions(-) 14 1 file changed, 8 insertions(+), 45 deletions(-)
diff --git a/meta/recipes-support/gnupg/gnupg/0004-autogen.sh-fix-find-version-for-beta-checking.patch b/meta/recipes-support/gnupg/gnupg/0004-autogen.sh-fix-find-version-for-beta-checking.patch
deleted file mode 100644
index d664c36a1b..0000000000
--- a/meta/recipes-support/gnupg/gnupg/0004-autogen.sh-fix-find-version-for-beta-checking.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 6a7f9b71d936847dcaeeac7d1b69d8299be4dd85 Mon Sep 17 00:00:00 2001
2From: Wenzong Fan <wenzong.fan@windriver.com>
3Date: Wed, 16 Aug 2017 11:23:22 +0800
4Subject: [PATCH] autogen.sh: fix find-version for beta checking
5
6find-version always assumes that gnupg is beta if autogen.sh is run
7out of git-repo. This doesn't work for users whom just take release
8tarball and re-run autoconf in their local build dir.
9
10Upstream-Status: Pending
11
12Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
13
14Rebase to 2.1.23
15Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
16
17---
18 autogen.sh | 1 -
19 1 file changed, 1 deletion(-)
20
21diff --git a/autogen.sh b/autogen.sh
22index 0abf103..78753b5 100755
23--- a/autogen.sh
24+++ b/autogen.sh
25@@ -237,7 +237,6 @@ if [ "$myhost" = "find-version" ]; then
26 rvd=$((0x$(echo ${rev} | dd bs=1 count=4 2>/dev/null)))
27 else
28 ingit=no
29- beta=yes
30 tmp="-unknown"
31 rev="0000000"
32 rvd="0"
diff --git a/meta/recipes-support/gnupg/gnupg/relocate.patch b/meta/recipes-support/gnupg/gnupg/relocate.patch
index ea0252026a..1ae8a564d4 100644
--- a/meta/recipes-support/gnupg/gnupg/relocate.patch
+++ b/meta/recipes-support/gnupg/gnupg/relocate.patch
@@ -1,4 +1,4 @@
1From c50d0a95fcf8f96c272fadd4ba85f3eeac39fcaf Mon Sep 17 00:00:00 2001 1From 917a98f9380d581548f3cbb59428cee3a5c29bae Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com> 2From: Ross Burton <ross.burton@intel.com>
3Date: Wed, 19 Sep 2018 14:44:40 +0100 3Date: Wed, 19 Sep 2018 14:44:40 +0100
4Subject: [PATCH] Allow the environment to override where gnupg looks for its 4Subject: [PATCH] Allow the environment to override where gnupg looks for its
@@ -8,16 +8,15 @@ Upstream-Status: Inappropriate [OE-specific]
8Signed-off-by: Ross Burton <ross.burton@intel.com> 8Signed-off-by: Ross Burton <ross.burton@intel.com>
9 9
10Signed-off-by: Alexander Kanavin <alex@linutronix.de> 10Signed-off-by: Alexander Kanavin <alex@linutronix.de>
11
12--- 11---
13 common/homedir.c | 14 +++++++------- 12 common/homedir.c | 14 +++++++-------
14 1 file changed, 7 insertions(+), 7 deletions(-) 13 1 file changed, 7 insertions(+), 7 deletions(-)
15 14
16diff --git a/common/homedir.c b/common/homedir.c 15diff --git a/common/homedir.c b/common/homedir.c
17index 6f99f3e..f22aa9e 100644 16index d26ddd9..24224c0 100644
18--- a/common/homedir.c 17--- a/common/homedir.c
19+++ b/common/homedir.c 18+++ b/common/homedir.c
20@@ -1284,7 +1284,7 @@ gnupg_socketdir (void) 19@@ -1451,7 +1451,7 @@ gnupg_socketdir (void)
21 if (!name) 20 if (!name)
22 { 21 {
23 unsigned int dummy; 22 unsigned int dummy;
@@ -26,7 +25,7 @@ index 6f99f3e..f22aa9e 100644
26 gpgrt_annotate_leaked_object (name); 25 gpgrt_annotate_leaked_object (name);
27 } 26 }
28 27
29@@ -1316,7 +1316,7 @@ gnupg_sysconfdir (void) 28@@ -1480,7 +1480,7 @@ gnupg_sysconfdir (void)
30 if (dir) 29 if (dir)
31 return dir; 30 return dir;
32 else 31 else
@@ -35,7 +34,7 @@ index 6f99f3e..f22aa9e 100644
35 #endif /*!HAVE_W32_SYSTEM*/ 34 #endif /*!HAVE_W32_SYSTEM*/
36 } 35 }
37 36
38@@ -1352,7 +1352,7 @@ gnupg_bindir (void) 37@@ -1516,7 +1516,7 @@ gnupg_bindir (void)
39 return name; 38 return name;
40 } 39 }
41 else 40 else
@@ -44,7 +43,7 @@ index 6f99f3e..f22aa9e 100644
44 #endif /*!HAVE_W32_SYSTEM*/ 43 #endif /*!HAVE_W32_SYSTEM*/
45 } 44 }
46 45
47@@ -1379,7 +1379,7 @@ gnupg_libexecdir (void) 46@@ -1543,7 +1543,7 @@ gnupg_libexecdir (void)
48 return name; 47 return name;
49 } 48 }
50 else 49 else
@@ -53,7 +52,7 @@ index 6f99f3e..f22aa9e 100644
53 #endif /*!HAVE_W32_SYSTEM*/ 52 #endif /*!HAVE_W32_SYSTEM*/
54 } 53 }
55 54
56@@ -1409,7 +1409,7 @@ gnupg_libdir (void) 55@@ -1573,7 +1573,7 @@ gnupg_libdir (void)
57 return name; 56 return name;
58 } 57 }
59 else 58 else
@@ -62,7 +61,7 @@ index 6f99f3e..f22aa9e 100644
62 #endif /*!HAVE_W32_SYSTEM*/ 61 #endif /*!HAVE_W32_SYSTEM*/
63 } 62 }
64 63
65@@ -1440,7 +1440,7 @@ gnupg_datadir (void) 64@@ -1604,7 +1604,7 @@ gnupg_datadir (void)
66 return name; 65 return name;
67 } 66 }
68 else 67 else
@@ -71,7 +70,7 @@ index 6f99f3e..f22aa9e 100644
71 #endif /*!HAVE_W32_SYSTEM*/ 70 #endif /*!HAVE_W32_SYSTEM*/
72 } 71 }
73 72
74@@ -1472,7 +1472,7 @@ gnupg_localedir (void) 73@@ -1636,7 +1636,7 @@ gnupg_localedir (void)
75 return name; 74 return name;
76 } 75 }
77 else 76 else
diff --git a/meta/recipes-support/gnupg/gnupg_2.4.5.bb b/meta/recipes-support/gnupg/gnupg_2.5.5.bb
index 99996968b1..cbf0988953 100644
--- a/meta/recipes-support/gnupg/gnupg_2.4.5.bb
+++ b/meta/recipes-support/gnupg/gnupg_2.5.5.bb
@@ -11,19 +11,20 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \
11 11
12DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt" 12DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt"
13 13
14inherit autotools gettext texinfo pkgconfig 14inherit autotools gettext texinfo pkgconfig upstream-version-is-even
15 15
16UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" 16require drop-unknown-suffix.inc
17
18UPSTREAM_CHECK_URI = "https://gnupg.org/ftp/gcrypt/gnupg/"
17SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ 19SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
18 file://0002-use-pkgconfig-instead-of-npth-config.patch \ 20 file://0002-use-pkgconfig-instead-of-npth-config.patch \
19 file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \
20 file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ 21 file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \
21 " 22 "
22SRC_URI:append:class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ 23SRC_URI:append:class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \
23 file://relocate.patch" 24 file://relocate.patch"
24SRC_URI:append:class-nativesdk = " file://relocate.patch" 25SRC_URI:append:class-nativesdk = " file://relocate.patch"
25 26
26SRC_URI[sha256sum] = "f68f7d75d06cb1635c336d34d844af97436c3f64ea14bcb7c869782f96f44277" 27SRC_URI[sha256sum] = "7afa71d72ff9aaff75a6810b87b486bc492fd752e4f77b07c41759ce4ef36b31"
27 28
28EXTRA_OECONF = "--disable-ldap \ 29EXTRA_OECONF = "--disable-ldap \
29 --disable-ccid-driver \ 30 --disable-ccid-driver \
@@ -31,17 +32,14 @@ EXTRA_OECONF = "--disable-ldap \
31 --with-bzip2=${STAGING_LIBDIR}/.. \ 32 --with-bzip2=${STAGING_LIBDIR}/.. \
32 --with-readline=${STAGING_LIBDIR}/.. \ 33 --with-readline=${STAGING_LIBDIR}/.. \
33 --with-mailprog=${sbindir}/sendmail \ 34 --with-mailprog=${sbindir}/sendmail \
34 --enable-gpg-is-gpg2 \
35 --disable-tests \ 35 --disable-tests \
36 --disable-doc \
36 " 37 "
37# yat2m can be found from recipe-sysroot-native non-deterministically with different versioning otherwise
38CACHED_CONFIGUREVARS += "ac_cv_path_YAT2M=./yat2m"
39 38
40# A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg) 39# A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg)
41PACKAGES =+ "${PN}-gpg" 40PACKAGES =+ "${PN}-gpg"
42FILES:${PN}-gpg = " \ 41FILES:${PN}-gpg = " \
43 ${bindir}/gpg \ 42 ${bindir}/gpg \
44 ${bindir}/gpg2 \
45 ${bindir}/gpg-agent \ 43 ${bindir}/gpg-agent \
46" 44"
47 45
@@ -61,11 +59,6 @@ do_configure:prepend () {
61 rm -f ${S}/m4/libgcrypt.m4 59 rm -f ${S}/m4/libgcrypt.m4
62} 60}
63 61
64do_install:append() {
65 ln -sf gpg2 ${D}${bindir}/gpg
66 ln -sf gpgv2 ${D}${bindir}/gpgv
67}
68
69do_install:append:class-native() { 62do_install:append:class-native() {
70 create_wrappers ${STAGING_BINDIR_NATIVE} 63 create_wrappers ${STAGING_BINDIR_NATIVE}
71} 64}
@@ -75,7 +68,7 @@ do_install:append:class-nativesdk() {
75} 68}
76 69
77create_wrappers() { 70create_wrappers() {
78 for i in gpg2 gpgconf gpg-agent gpg-connect-agent; do 71 for i in gpg gpgconf gpg-agent gpg-connect-agent; do
79 create_wrapper ${D}${bindir}/$i GNUPG_BINDIR=$1 72 create_wrapper ${D}${bindir}/$i GNUPG_BINDIR=$1
80 done 73 done
81} 74}
@@ -88,3 +81,4 @@ BBCLASSEXTEND = "native nativesdk"
88 81
89lcl_maybe_fortify:mipsarch = "" 82lcl_maybe_fortify:mipsarch = ""
90 83
84CVE_STATUS[CVE-2022-3219] = "upstream-wontfix: Upstream doesn't seem to be keen on merging the proposed commit - https://dev.gnupg.org/T5993"
diff --git a/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch b/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch
index d13bfee8ef..2dccea7859 100644
--- a/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch
+++ b/meta/recipes-support/gnutls/gnutls/0001-Creating-.hmac-file-should-be-excuted-in-target-envi.patch
@@ -1,4 +1,4 @@
1From 7be8ec59a53e93c2bd453b3ba2d63d1b300ef11f Mon Sep 17 00:00:00 2001 1From c4f6cb380471b5e5478ae6f7f8c5604a6a64ec1c Mon Sep 17 00:00:00 2001
2From: Lei Maohui <leimaohui@fujitsu.com> 2From: Lei Maohui <leimaohui@fujitsu.com>
3Date: Mon, 23 May 2022 10:44:43 +0900 3Date: Mon, 23 May 2022 10:44:43 +0900
4Subject: [PATCH] Creating .hmac file should be excuted in target environment, 4Subject: [PATCH] Creating .hmac file should be excuted in target environment,
@@ -14,7 +14,7 @@ diff --git a/lib/Makefile.am b/lib/Makefile.am
14index a50d311..193ea19 100644 14index a50d311..193ea19 100644
15--- a/lib/Makefile.am 15--- a/lib/Makefile.am
16+++ b/lib/Makefile.am 16+++ b/lib/Makefile.am
17@@ -198,8 +198,7 @@ hmac_file = .libs/.$(gnutls_so).hmac 17@@ -272,8 +272,7 @@ hmac_file = .libs/.$(gnutls_so).hmac
18 18
19 all-local: $(hmac_file) 19 all-local: $(hmac_file)
20 20
diff --git a/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch b/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch
index 1152d3797f..339d3d2f9e 100644
--- a/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch
+++ b/meta/recipes-support/gnutls/gnutls/Add-ptest-support.patch
@@ -1,4 +1,4 @@
1From ff6a345235b2585c261752e47a749228672b07dc Mon Sep 17 00:00:00 2001 1From 6abc86acecff5a30173eb78a971ec5b65f77e1de Mon Sep 17 00:00:00 2001
2From: Ravineet Singh <ravineet.a.singh@est.tech> 2From: Ravineet Singh <ravineet.a.singh@est.tech>
3Date: Tue, 10 Jan 2023 16:11:10 +0100 3Date: Tue, 10 Jan 2023 16:11:10 +0100
4Subject: [PATCH] gnutls: add ptest support 4Subject: [PATCH] gnutls: add ptest support
@@ -15,9 +15,9 @@ diff --git a/Makefile.am b/Makefile.am
15index 843193f..816b09f 100644 15index 843193f..816b09f 100644
16--- a/Makefile.am 16--- a/Makefile.am
17+++ b/Makefile.am 17+++ b/Makefile.am
18@@ -191,6 +191,9 @@ dist-hook: 18@@ -194,6 +194,9 @@ dist-hook:
19 mv ChangeLog $(distdir) 19 distcheck-hook:
20 touch -c $(distdir)/doc/*.html $(distdir)/doc/*.pdf $(distdir)/doc/*.info 20 @test -d "$(top_srcdir)/po/.reference" || { echo "PO files are not downloaded; run ./bootstrap without --skip-po"; exit 1; }
21 21
22+install-ptest: 22+install-ptest:
23+ $(MAKE) -C tests DESTDIR=$(DESTDIR)/tests $@ 23+ $(MAKE) -C tests DESTDIR=$(DESTDIR)/tests $@
@@ -26,10 +26,10 @@ index 843193f..816b09f 100644
26 26
27 include $(top_srcdir)/cligen/cligen.mk 27 include $(top_srcdir)/cligen/cligen.mk
28diff --git a/configure.ac b/configure.ac 28diff --git a/configure.ac b/configure.ac
29index d6e03cf..e3f15fb 100644 29index 1744813..efb9e34 100644
30--- a/configure.ac 30--- a/configure.ac
31+++ b/configure.ac 31+++ b/configure.ac
32@@ -1213,6 +1213,8 @@ AC_SUBST(LIBGNUTLS_CFLAGS) 32@@ -1491,6 +1491,8 @@ AC_SUBST(LIBGNUTLS_CFLAGS)
33 33
34 AM_CONDITIONAL(NEEDS_LIBRT, test "$gnutls_needs_librt" = "yes") 34 AM_CONDITIONAL(NEEDS_LIBRT, test "$gnutls_needs_librt" = "yes")
35 35
@@ -39,10 +39,10 @@ index d6e03cf..e3f15fb 100644
39 39
40 hw_features= 40 hw_features=
41diff --git a/tests/Makefile.am b/tests/Makefile.am 41diff --git a/tests/Makefile.am b/tests/Makefile.am
42index fb9e55a..c2d226a 100644 42index 189d068..8430b05 100644
43--- a/tests/Makefile.am 43--- a/tests/Makefile.am
44+++ b/tests/Makefile.am 44+++ b/tests/Makefile.am
45@@ -658,6 +658,12 @@ SH_LOG_COMPILER = $(SHELL) 45@@ -678,6 +678,12 @@ SH_LOG_COMPILER = $(SHELL)
46 AM_VALGRINDFLAGS = --suppressions=$(srcdir)/suppressions.valgrind 46 AM_VALGRINDFLAGS = --suppressions=$(srcdir)/suppressions.valgrind
47 LOG_COMPILER = $(LOG_VALGRIND) 47 LOG_COMPILER = $(LOG_VALGRIND)
48 48
diff --git a/meta/recipes-support/gnutls/gnutls/arm_eabi.patch b/meta/recipes-support/gnutls/gnutls/arm_eabi.patch
index 883d0123db..d493448aab 100644
--- a/meta/recipes-support/gnutls/gnutls/arm_eabi.patch
+++ b/meta/recipes-support/gnutls/gnutls/arm_eabi.patch
@@ -1,4 +1,4 @@
1From d17ae0ef31c3c186766a338e8c40c87d1b98820e Mon Sep 17 00:00:00 2001 1From 46b3079095c5ceb0dc742785853bbaf288f325c6 Mon Sep 17 00:00:00 2001
2From: Joe Slater <jslater@windriver.com> 2From: Joe Slater <jslater@windriver.com>
3Date: Wed, 25 Jan 2017 13:52:59 -0800 3Date: Wed, 25 Jan 2017 13:52:59 -0800
4Subject: [PATCH] gnutls: account for ARM_EABI 4Subject: [PATCH] gnutls: account for ARM_EABI
diff --git a/meta/recipes-support/gnutls/gnutls_3.8.4.bb b/meta/recipes-support/gnutls/gnutls_3.8.9.bb
index 20139b4dd4..f2b7ac7bb8 100644
--- a/meta/recipes-support/gnutls/gnutls_3.8.4.bb
+++ b/meta/recipes-support/gnutls/gnutls_3.8.9.bb
@@ -10,9 +10,9 @@ LICENSE:${PN}-xx = "LGPL-2.1-or-later"
10LICENSE:${PN}-bin = "GPL-3.0-or-later" 10LICENSE:${PN}-bin = "GPL-3.0-or-later"
11LICENSE:${PN}-openssl = "GPL-3.0-or-later" 11LICENSE:${PN}-openssl = "GPL-3.0-or-later"
12 12
13LIC_FILES_CHKSUM = "file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283 \ 13LIC_FILES_CHKSUM = "file://README.md;beginline=181;endline=205;md5=e159ff2a6e9cc95141fb0eaff733bba3 \
14 file://doc/COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ 14 file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
15 file://doc/COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c" 15 file://COPYING.LESSERv2;md5=4bf661c1e3793e55c8d1051bc5e0ae21"
16 16
17DEPENDS = "nettle gmp virtual/libiconv libunistring" 17DEPENDS = "nettle gmp virtual/libiconv libunistring"
18 18
@@ -25,7 +25,7 @@ SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar
25 file://Add-ptest-support.patch \ 25 file://Add-ptest-support.patch \
26 " 26 "
27 27
28SRC_URI[sha256sum] = "2bea4e154794f3f00180fa2a5c51fe8b005ac7a31cd58bd44cdfa7f36ebc3a9b" 28SRC_URI[sha256sum] = "69e113d802d1670c4d5ac1b99040b1f2d5c7c05daec5003813c049b5184820ed"
29 29
30inherit autotools texinfo pkgconfig gettext lib_package gtk-doc ptest 30inherit autotools texinfo pkgconfig gettext lib_package gtk-doc ptest
31 31
@@ -55,7 +55,7 @@ EXTRA_OECONF = " \
55" 55"
56 56
57# Otherwise the tools try and use HOSTTOOLS_DIR/bash as a shell. 57# Otherwise the tools try and use HOSTTOOLS_DIR/bash as a shell.
58export POSIX_SHELL="${base_bindir}/sh" 58export POSIX_SHELL = "${base_bindir}/sh"
59 59
60do_configure:prepend() { 60do_configure:prepend() {
61 for dir in . lib; do 61 for dir in . lib; do
diff --git a/meta/recipes-support/gnutls/libtasn1_4.19.0.bb b/meta/recipes-support/gnutls/libtasn1_4.20.0.bb
index 5fb8b54c06..8127ba5b1d 100644
--- a/meta/recipes-support/gnutls/libtasn1_4.19.0.bb
+++ b/meta/recipes-support/gnutls/libtasn1_4.20.0.bb
@@ -6,9 +6,8 @@ HOMEPAGE = "http://www.gnu.org/software/libtasn1/"
6LICENSE = "GPL-3.0-or-later & LGPL-2.1-or-later" 6LICENSE = "GPL-3.0-or-later & LGPL-2.1-or-later"
7LICENSE:${PN}-bin = "GPL-3.0-or-later" 7LICENSE:${PN}-bin = "GPL-3.0-or-later"
8LICENSE:${PN} = "LGPL-2.1-or-later" 8LICENSE:${PN} = "LGPL-2.1-or-later"
9LIC_FILES_CHKSUM = "file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \ 9LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
10 file://doc/COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \ 10 file://COPYING.LESSERv2;md5=4bf661c1e3793e55c8d1051bc5e0ae21"
11 file://COPYING;md5=75ac100ec923f959898182307970c360"
12 11
13SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \ 12SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
14 file://dont-depend-on-help2man.patch \ 13 file://dont-depend-on-help2man.patch \
@@ -16,7 +15,7 @@ SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
16 15
17DEPENDS = "bison-native" 16DEPENDS = "bison-native"
18 17
19SRC_URI[sha256sum] = "1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a" 18SRC_URI[sha256sum] = "92e0e3bd4c02d4aeee76036b2ddd83f0c732ba4cda5cb71d583272b23587a76c"
20 19
21inherit autotools texinfo lib_package gtk-doc 20inherit autotools texinfo lib_package gtk-doc
22 21
diff --git a/meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch b/meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch
index 8ed39280ca..2a906a6c73 100644
--- a/meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch
+++ b/meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch
@@ -1,4 +1,4 @@
1From ee1421f7a7a9f31400ba992a5be52b88d20170c9 Mon Sep 17 00:00:00 2001 1From 95d0bae453b2b5a7d25b92d99565d27407fffa1b Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Fri, 10 May 2019 14:18:04 +0800 3Date: Fri, 10 May 2019 14:18:04 +0800
4Subject: [PATCH] Revert "build: Make gpgme.m4 use gpgrt-config with *.pc." 4Subject: [PATCH] Revert "build: Make gpgme.m4 use gpgrt-config with *.pc."
@@ -10,16 +10,15 @@ The oe-core does not support gpgrt-config, so revert it
10Upstream-Status: Inappropriate [oe-core specific] 10Upstream-Status: Inappropriate [oe-core specific]
11 11
12Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 12Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
13
14--- 13---
15 src/gpgme.m4 | 54 ++++++++-------------------------------------------- 14 src/gpgme.m4 | 54 ++++++++--------------------------------------------
16 1 file changed, 8 insertions(+), 46 deletions(-) 15 1 file changed, 8 insertions(+), 46 deletions(-)
17 16
18diff --git a/src/gpgme.m4 b/src/gpgme.m4 17diff --git a/src/gpgme.m4 b/src/gpgme.m4
19index f2906c1..8cc2898 100644 18index 4cfe899..5f689e1 100644
20--- a/src/gpgme.m4 19--- a/src/gpgme.m4
21+++ b/src/gpgme.m4 20+++ b/src/gpgme.m4
22@@ -125,24 +125,10 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl 21@@ -122,24 +122,10 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
23 fi 22 fi
24 fi 23 fi
25 24
@@ -46,7 +45,7 @@ index f2906c1..8cc2898 100644
46 fi 45 fi
47 gpgme_version_major=`echo $gpgme_version | \ 46 gpgme_version_major=`echo $gpgme_version | \
48 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` 47 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
49@@ -155,16 +141,12 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl 48@@ -152,16 +138,12 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
50 49
51 AC_DEFUN([_AM_PATH_GPGME_CONFIG_HOST_CHECK], 50 AC_DEFUN([_AM_PATH_GPGME_CONFIG_HOST_CHECK],
52 [ 51 [
@@ -65,7 +64,7 @@ index f2906c1..8cc2898 100644
65 *** built for $gpgme_config_host and thus may not match the 64 *** built for $gpgme_config_host and thus may not match the
66 *** used host $host. 65 *** used host $host.
67 *** You may want to use the configure option --with-gpgme-prefix 66 *** You may want to use the configure option --with-gpgme-prefix
68@@ -225,11 +207,7 @@ AC_DEFUN([AM_PATH_GPGME], 67@@ -223,11 +205,7 @@ AC_DEFUN([AM_PATH_GPGME],
69 # If we have a recent GPGME, we should also check that the 68 # If we have a recent GPGME, we should also check that the
70 # API is compatible. 69 # API is compatible.
71 if test "$req_gpgme_api" -gt 0 ; then 70 if test "$req_gpgme_api" -gt 0 ; then
@@ -78,7 +77,7 @@ index f2906c1..8cc2898 100644
78 if test "$tmp" -gt 0 ; then 77 if test "$tmp" -gt 0 ; then
79 if test "$req_gpgme_api" -ne "$tmp" ; then 78 if test "$req_gpgme_api" -ne "$tmp" ; then
80 ok=no 79 ok=no
81@@ -372,11 +350,7 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], 80@@ -370,11 +348,7 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
82 # If we have a recent GPGME, we should also check that the 81 # If we have a recent GPGME, we should also check that the
83 # API is compatible. 82 # API is compatible.
84 if test "$req_gpgme_api" -gt 0 ; then 83 if test "$req_gpgme_api" -gt 0 ; then
@@ -91,7 +90,7 @@ index f2906c1..8cc2898 100644
91 if test "$tmp" -gt 0 ; then 90 if test "$tmp" -gt 0 ; then
92 if test "$req_gpgme_api" -ne "$tmp" ; then 91 if test "$req_gpgme_api" -ne "$tmp" ; then
93 ok=no 92 ok=no
94@@ -385,20 +359,8 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], 93@@ -383,20 +357,8 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
95 fi 94 fi
96 fi 95 fi
97 if test $ok = yes; then 96 if test $ok = yes; then
diff --git a/meta/recipes-support/gpgme/gpgme/0001-autogen.sh-remove-unknown-in-version.patch b/meta/recipes-support/gpgme/gpgme/0001-autogen.sh-remove-unknown-in-version.patch
index 6d67e6d6c9..890909dd5e 100644
--- a/meta/recipes-support/gpgme/gpgme/0001-autogen.sh-remove-unknown-in-version.patch
+++ b/meta/recipes-support/gpgme/gpgme/0001-autogen.sh-remove-unknown-in-version.patch
@@ -1,6 +1,6 @@
1From acc4750ffa79a5c2ef3c95cf31ef51352a68837b Mon Sep 17 00:00:00 2001 1From 0bb7fddb6a768bbc46695de4c6e0256a3580ccbb Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Tue, 28 Feb 2023 13:43:51 +0800 3Date: Tue, 26 Nov 2024 23:23:42 -0800
4Subject: [PATCH] autogen.sh: remove '-unknown' in version 4Subject: [PATCH] autogen.sh: remove '-unknown' in version
5 5
6python setuptools >=66.0.0 treats '-unknown' as an invalid version. 6python setuptools >=66.0.0 treats '-unknown' as an invalid version.
@@ -13,20 +13,22 @@ Upstream-Status: Submitted [https://lists.gnupg.org/pipermail/gnupg-devel/2023-F
13 13
14Signed-off-by: Chen Qi <Qi.Chen@windriver.com> 14Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
15 15
16Rebase to 1.24.0
17Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
16--- 18---
17 autogen.sh | 2 +- 19 autogen.sh | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-) 20 1 file changed, 1 insertion(+), 1 deletion(-)
19 21
20diff --git a/autogen.sh b/autogen.sh 22diff --git a/autogen.sh b/autogen.sh
21index 4e1665b..a55326d 100755 23index 9f91297..9f7559b 100755
22--- a/autogen.sh 24--- a/autogen.sh
23+++ b/autogen.sh 25+++ b/autogen.sh
24@@ -269,7 +269,7 @@ if [ "$myhost" = "find-version" ]; then 26@@ -271,7 +271,7 @@ if [ "$myhost" = "find-version" ]; then
25 else 27 else
26 ingit=no 28 ingit=no
27 beta=yes 29 beta=yes
28- tmp="-unknown" 30- tmp="-unknown"
29+ tmp="" 31+ tmp=""
32 cid="0000000"
30 rev="0000000" 33 rev="0000000"
31 rvd="0" 34 rvd="0"
32 fi
diff --git a/meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch b/meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch
index 831771ca2d..9d0b4b282b 100644
--- a/meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch
+++ b/meta/recipes-support/gpgme/gpgme/0001-pkgconfig.patch
@@ -1,6 +1,6 @@
1From 7b3a00cb0fc27c896dd85c9afc474bd9c2aea30d Mon Sep 17 00:00:00 2001 1From 447fd26a43f40ccb071cd19198ee43fdfce87e3a Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Fri, 10 May 2019 14:23:55 +0800 3Date: Tue, 26 Nov 2024 23:04:52 -0800
4Subject: [PATCH] pkgconfig 4Subject: [PATCH] pkgconfig
5 5
6Update gpgme to use pkgconfig instead of -config files since its 6Update gpgme to use pkgconfig instead of -config files since its
@@ -15,30 +15,31 @@ Rebase to 1.13.0
15Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 15Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
16Rebase to 1.17.0 16Rebase to 1.17.0
17Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> 17Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
18 18Rebase to 1.24.0
19Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
19--- 20---
20 configure.ac | 1 + 21 configure.ac | 1 +
21 src/Makefile.am | 4 +- 22 src/Makefile.am | 4 +-
22 src/gpgme-pthread.pc.in | 15 +++++ 23 src/gpgme-pthread.pc.in | 15 +++++
23 src/gpgme.m4 | 119 +++------------------------------------- 24 src/gpgme.m4 | 118 +++-------------------------------------
24 src/gpgme.pc.in | 4 +- 25 src/gpgme.pc.in | 4 +-
25 5 files changed, 29 insertions(+), 114 deletions(-) 26 5 files changed, 28 insertions(+), 114 deletions(-)
26 create mode 100644 src/gpgme-pthread.pc.in 27 create mode 100644 src/gpgme-pthread.pc.in
27 28
28diff --git a/configure.ac b/configure.ac 29diff --git a/configure.ac b/configure.ac
29index ae4c7da..df892c9 100644 30index c34f700..4eddc3d 100644
30--- a/configure.ac 31--- a/configure.ac
31+++ b/configure.ac 32+++ b/configure.ac
32@@ -1112,6 +1112,7 @@ AC_CONFIG_FILES(Makefile src/Makefile 33@@ -1176,6 +1176,7 @@ AC_CONFIG_FILES(Makefile src/Makefile
33 src/gpgme-glib.pc 34 src/gpgme-glib.pc
34 src/gpgme.h) 35 src/gpgme.h)
35 AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config) 36 AC_CONFIG_FILES(src/gpgme-config, chmod +x src/gpgme-config)
36+AC_CONFIG_FILES(src/gpgme-pthread.pc) 37+AC_CONFIG_FILES(src/gpgme-pthread.pc)
37 AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile) 38 AC_CONFIG_FILES(lang/cpp/Makefile lang/cpp/src/Makefile)
38 AC_CONFIG_FILES(lang/cpp/tests/Makefile) 39 AC_CONFIG_FILES(lang/cpp/tests/Makefile)
39 AC_CONFIG_FILES(lang/cpp/src/GpgmeppConfig-w32.cmake.in) 40 AC_CONFIG_FILES(lang/cpp/src/gpgmepp.pc)
40diff --git a/src/Makefile.am b/src/Makefile.am 41diff --git a/src/Makefile.am b/src/Makefile.am
41index ca70950..bda5498 100644 42index 0370862..e716ce4 100644
42--- a/src/Makefile.am 43--- a/src/Makefile.am
43+++ b/src/Makefile.am 44+++ b/src/Makefile.am
44@@ -20,11 +20,11 @@ 45@@ -20,11 +20,11 @@
@@ -77,19 +78,18 @@ index 0000000..074bbf6
77+Cflags: -I${includedir} 78+Cflags: -I${includedir}
78+Requires: libassuan gpg-error 79+Requires: libassuan gpg-error
79diff --git a/src/gpgme.m4 b/src/gpgme.m4 80diff --git a/src/gpgme.m4 b/src/gpgme.m4
80index 8cc2898..0ff550e 100644 81index 5f689e1..249e8c9 100644
81--- a/src/gpgme.m4 82--- a/src/gpgme.m4
82+++ b/src/gpgme.m4 83+++ b/src/gpgme.m4
83@@ -168,7 +168,7 @@ dnl config script does not match the host specification the script 84@@ -166,7 +166,6 @@ dnl is added to the gpg_config_script_warn variable.
84 dnl is added to the gpg_config_script_warn variable.
85 dnl 85 dnl
86 AC_DEFUN([AM_PATH_GPGME], 86 AC_DEFUN([AM_PATH_GPGME],
87-[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl 87 [ AC_REQUIRE([AC_CANONICAL_HOST])dnl
88+[ 88- AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl
89 tmp=ifelse([$1], ,1:0.4.2,$1) 89 tmp=ifelse([$1], ,1:0.4.2,$1)
90 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 90 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
91 req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` 91 req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
92@@ -178,36 +178,12 @@ AC_DEFUN([AM_PATH_GPGME], 92@@ -176,36 +175,12 @@ AC_DEFUN([AM_PATH_GPGME],
93 min_gpgme_version="$tmp" 93 min_gpgme_version="$tmp"
94 fi 94 fi
95 95
@@ -128,7 +128,7 @@ index 8cc2898..0ff550e 100644
128 if test "$tmp" -gt 0 ; then 128 if test "$tmp" -gt 0 ; then
129 if test "$req_gpgme_api" -ne "$tmp" ; then 129 if test "$req_gpgme_api" -ne "$tmp" ; then
130 ok=no 130 ok=no
131@@ -216,19 +192,11 @@ AC_DEFUN([AM_PATH_GPGME], 131@@ -214,19 +189,11 @@ AC_DEFUN([AM_PATH_GPGME],
132 fi 132 fi
133 fi 133 fi
134 if test $ok = yes; then 134 if test $ok = yes; then
@@ -148,7 +148,7 @@ index 8cc2898..0ff550e 100644
148 ]) 148 ])
149 149
150 dnl AM_PATH_GPGME_PTHREAD([MINIMUM-VERSION, 150 dnl AM_PATH_GPGME_PTHREAD([MINIMUM-VERSION,
151@@ -236,9 +204,8 @@ dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) 151@@ -234,9 +201,8 @@ dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
152 dnl Test for libgpgme and define GPGME_PTHREAD_CFLAGS 152 dnl Test for libgpgme and define GPGME_PTHREAD_CFLAGS
153 dnl and GPGME_PTHREAD_LIBS. 153 dnl and GPGME_PTHREAD_LIBS.
154 dnl 154 dnl
@@ -160,7 +160,7 @@ index 8cc2898..0ff550e 100644
160 tmp=ifelse([$1], ,1:0.4.2,$1) 160 tmp=ifelse([$1], ,1:0.4.2,$1)
161 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 161 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
162 req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` 162 req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
163@@ -248,40 +215,12 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[ 163@@ -246,40 +212,12 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[
164 min_gpgme_version="$tmp" 164 min_gpgme_version="$tmp"
165 fi 165 fi
166 166
@@ -203,7 +203,7 @@ index 8cc2898..0ff550e 100644
203 if test "$tmp" -gt 0 ; then 203 if test "$tmp" -gt 0 ; then
204 if test "$req_gpgme_api" -ne "$tmp" ; then 204 if test "$req_gpgme_api" -ne "$tmp" ; then
205 ok=no 205 ok=no
206@@ -290,19 +229,11 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[ 206@@ -288,19 +226,11 @@ AC_DEFUN([AM_PATH_GPGME_PTHREAD],[
207 fi 207 fi
208 fi 208 fi
209 if test $ok = yes; then 209 if test $ok = yes; then
@@ -223,7 +223,7 @@ index 8cc2898..0ff550e 100644
223 ]) 223 ])
224 224
225 225
226@@ -321,36 +252,12 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], 226@@ -319,36 +249,12 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
227 min_gpgme_version="$tmp" 227 min_gpgme_version="$tmp"
228 fi 228 fi
229 229
@@ -262,7 +262,7 @@ index 8cc2898..0ff550e 100644
262 if test "$tmp" -gt 0 ; then 262 if test "$tmp" -gt 0 ; then
263 if test "$req_gpgme_api" -ne "$tmp" ; then 263 if test "$req_gpgme_api" -ne "$tmp" ; then
264 ok=no 264 ok=no
265@@ -359,17 +266,9 @@ AC_DEFUN([AM_PATH_GPGME_GLIB], 265@@ -357,17 +263,9 @@ AC_DEFUN([AM_PATH_GPGME_GLIB],
266 fi 266 fi
267 fi 267 fi
268 if test $ok = yes; then 268 if test $ok = yes; then
diff --git a/meta/recipes-support/gpgme/gpgme/0001-posix-io.c-Use-off_t-instead-of-off64_t.patch b/meta/recipes-support/gpgme/gpgme/0001-posix-io.c-Use-off_t-instead-of-off64_t.patch
index be58c42128..932fb9c962 100644
--- a/meta/recipes-support/gpgme/gpgme/0001-posix-io.c-Use-off_t-instead-of-off64_t.patch
+++ b/meta/recipes-support/gpgme/gpgme/0001-posix-io.c-Use-off_t-instead-of-off64_t.patch
@@ -1,4 +1,4 @@
1From be33cf1812b4c2a3ed85fb2532992bfb2b27b3be Mon Sep 17 00:00:00 2001 1From 417036051c84b02fe43f162ee378278a44636451 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 15 Dec 2022 08:44:13 -0800 3Date: Thu, 15 Dec 2022 08:44:13 -0800
4Subject: [PATCH] posix-io.c: Use off_t instead of off64_t 4Subject: [PATCH] posix-io.c: Use off_t instead of off64_t
diff --git a/meta/recipes-support/gpgme/gpgme/0001-use-closefrom-on-linux-and-glibc-2.34.patch b/meta/recipes-support/gpgme/gpgme/0001-use-closefrom-on-linux-and-glibc-2.34.patch
index 3d05808d63..ed2edabd63 100644
--- a/meta/recipes-support/gpgme/gpgme/0001-use-closefrom-on-linux-and-glibc-2.34.patch
+++ b/meta/recipes-support/gpgme/gpgme/0001-use-closefrom-on-linux-and-glibc-2.34.patch
@@ -1,4 +1,4 @@
1From e1fc4b06dcb62e1c2d85ae99f39ef1a8860570e1 Mon Sep 17 00:00:00 2001 1From aaed03b76505b1feaeeb5a4a3c6bdcc7dd089f01 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 15 Jul 2021 12:33:13 -0700 3Date: Thu, 15 Jul 2021 12:33:13 -0700
4Subject: [PATCH] use closefrom() on linux and glibc 2.34+ 4Subject: [PATCH] use closefrom() on linux and glibc 2.34+
@@ -8,7 +8,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
8 8
9Rebase to 1.17.0 9Rebase to 1.17.0
10Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> 10Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
11
12--- 11---
13 src/posix-io.c | 2 +- 12 src/posix-io.c | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-) 13 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-support/gpgme/gpgme/0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch b/meta/recipes-support/gpgme/gpgme/0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch
index 0d2692912f..3a1837e857 100644
--- a/meta/recipes-support/gpgme/gpgme/0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch
+++ b/meta/recipes-support/gpgme/gpgme/0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch
@@ -1,4 +1,4 @@
1From 9fce0689bc04506e5758444efa24ea99fe1ff5ef Mon Sep 17 00:00:00 2001 1From 145adf290571b7dd47b7fca57b11349af0b94e74 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Fri, 10 May 2019 14:30:36 +0800 3Date: Fri, 10 May 2019 14:30:36 +0800
4Subject: [PATCH] gpgme/lang/python: gpg-error-config should not be used 4Subject: [PATCH] gpgme/lang/python: gpg-error-config should not be used
@@ -14,16 +14,15 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
14Rebase to 1.13.0 14Rebase to 1.13.0
15 15
16Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 16Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
17
18--- 17---
19 lang/python/setup.py.in | 3 +-- 18 lang/python/setup.py.in | 3 +--
20 1 file changed, 1 insertion(+), 2 deletions(-) 19 1 file changed, 1 insertion(+), 2 deletions(-)
21 20
22diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in 21diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in
23index 6f36861..1d9058b 100755 22index 1ddfbe7..d2fa4f0 100755
24--- a/lang/python/setup.py.in 23--- a/lang/python/setup.py.in
25+++ b/lang/python/setup.py.in 24+++ b/lang/python/setup.py.in
26@@ -169,9 +169,8 @@ class BuildExtFirstHack(build): 25@@ -173,9 +173,8 @@ class BuildExtFirstHack(build):
27 26
28 def _generate_errors_i(self): 27 def _generate_errors_i(self):
29 28
diff --git a/meta/recipes-support/gpgme/gpgme/0003-Correctly-install-python-modules.patch b/meta/recipes-support/gpgme/gpgme/0003-Correctly-install-python-modules.patch
index 204fe5934d..7b2831ba4f 100644
--- a/meta/recipes-support/gpgme/gpgme/0003-Correctly-install-python-modules.patch
+++ b/meta/recipes-support/gpgme/gpgme/0003-Correctly-install-python-modules.patch
@@ -1,4 +1,4 @@
1From 8c850aa109c42d0c193bccc7af45dbc2689b23f6 Mon Sep 17 00:00:00 2001 1From d8e884d1fa8c35ce68e94a0668548580cf5ba2d3 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Tue, 30 Jan 2018 15:28:49 +0800 3Date: Tue, 30 Jan 2018 15:28:49 +0800
4Subject: [PATCH] Correctly install python modules 4Subject: [PATCH] Correctly install python modules
@@ -12,13 +12,12 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
12 12
13Rebase to 1.10.0 13Rebase to 1.10.0
14Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 14Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
15
16--- 15---
17 lang/python/Makefile.am | 1 + 16 lang/python/Makefile.am | 1 +
18 1 file changed, 1 insertion(+) 17 1 file changed, 1 insertion(+)
19 18
20diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am 19diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am
21index 68b98e8..bbb9111 100644 20index 1aa330f..d1d5c63 100644
22--- a/lang/python/Makefile.am 21--- a/lang/python/Makefile.am
23+++ b/lang/python/Makefile.am 22+++ b/lang/python/Makefile.am
24@@ -97,6 +97,7 @@ install-exec-local: 23@@ -97,6 +97,7 @@ install-exec-local:
diff --git a/meta/recipes-support/gpgme/gpgme/0004-python-import.patch b/meta/recipes-support/gpgme/gpgme/0004-python-import.patch
deleted file mode 100644
index fa0eccfce3..0000000000
--- a/meta/recipes-support/gpgme/gpgme/0004-python-import.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From f51bf1114bee6d56a950dcc6ebb46d6138b3faed Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com>
3Date: Wed, 16 Aug 2017 02:06:45 -0400
4Subject: [PATCH 4/7] python import
5
6Don't check for output on stderr to know if an import worked, host inputrc and
7sysroot readline can cause warnings on stderr.
8
9Upstream-Status: Backport (from autoconf-archive 883a2abd)
10Signed-off-by: Ross Burton <ross.burton@intel.com>
11
12Rebase to 1.9.0
13
14Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
15---
16 m4/ax_python_devel.m4 | 2 +-
17 1 file changed, 1 insertion(+), 1 deletion(-)
18
19diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4
20index b990d5b..318b089 100644
21--- a/m4/ax_python_devel.m4
22+++ b/m4/ax_python_devel.m4
23@@ -137,7 +137,7 @@ variable to configure. See ``configure --help'' for reference.
24 #
25 AC_MSG_CHECKING([for the distutils Python package])
26 ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
27- if test -z "$ac_distutils_result"; then
28+ if test $? -eq 0; then
29 AC_MSG_RESULT([yes])
30 else
31 AC_MSG_RESULT([no])
32--
332.7.4
34
diff --git a/meta/recipes-support/gpgme/gpgme/0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch b/meta/recipes-support/gpgme/gpgme/0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch
index 7fe0c9538a..c021e48be9 100644
--- a/meta/recipes-support/gpgme/gpgme/0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch
+++ b/meta/recipes-support/gpgme/gpgme/0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch
@@ -1,4 +1,4 @@
1From 57475742b0288b4ee53c01c59c3ab03c1ef7932e Mon Sep 17 00:00:00 2001 1From 9ea685f1b898ee703b85b705c35b9cbd77cca17f Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 13 Apr 2017 16:40:27 +0300 3Date: Thu, 13 Apr 2017 16:40:27 +0300
4Subject: [PATCH] gpgme-config: skip all /lib* or /usr/lib* directories in 4Subject: [PATCH] gpgme-config: skip all /lib* or /usr/lib* directories in
@@ -9,7 +9,6 @@ directory names than plain /lib or /usr/lib.
9 9
10Upstream-Status: Inappropriate [oe-core specific] 10Upstream-Status: Inappropriate [oe-core specific]
11Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 11Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12
13--- 12---
14 src/gpgme-config.in | 2 +- 13 src/gpgme-config.in | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-) 14 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-support/gpgme/gpgme/0006-fix-build-path-issue.patch b/meta/recipes-support/gpgme/gpgme/0006-fix-build-path-issue.patch
index 8d48db2feb..d64168b4fd 100644
--- a/meta/recipes-support/gpgme/gpgme/0006-fix-build-path-issue.patch
+++ b/meta/recipes-support/gpgme/gpgme/0006-fix-build-path-issue.patch
@@ -1,4 +1,4 @@
1From 7938a5a760827aec737ea49d2f8719051abda188 Mon Sep 17 00:00:00 2001 1From f9f82874048c5eec08e815ff871462184b6d7d6a Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Wed, 31 Jan 2018 11:01:09 +0800 3Date: Wed, 31 Jan 2018 11:01:09 +0800
4Subject: [PATCH] fix build path issue 4Subject: [PATCH] fix build path issue
@@ -12,13 +12,12 @@ to use relative path.
12 12
13Upstream-Status: Submitted [gnupg-devel@gnupg.org] 13Upstream-Status: Submitted [gnupg-devel@gnupg.org]
14Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 14Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
15
16--- 15---
17 lang/python/Makefile.am | 5 +++-- 16 lang/python/Makefile.am | 5 +++--
18 1 file changed, 3 insertions(+), 2 deletions(-) 17 1 file changed, 3 insertions(+), 2 deletions(-)
19 18
20diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am 19diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am
21index bbb9111..cee499e 100644 20index d1d5c63..148e1b9 100644
22--- a/lang/python/Makefile.am 21--- a/lang/python/Makefile.am
23+++ b/lang/python/Makefile.am 22+++ b/lang/python/Makefile.am
24@@ -96,8 +96,9 @@ install-exec-local: 23@@ -96,8 +96,9 @@ install-exec-local:
diff --git a/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch b/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch
deleted file mode 100644
index a11621ed64..0000000000
--- a/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 84c389705e7742d2b68e144a5733e618441d293e Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Fri, 10 May 2019 16:19:54 +0800
4Subject: [PATCH] do not auto check var-PYTHON
5
6Upstream auto check the version of python rather than specify option
7[ff6ff61 python: Auto-check for all installed python versions.]
8
9In oe-core, don't check var-PYTHON, use the setting from recipe,
10only check specific python 2.7 and 3.7
11
12Upstream-Status: Inappropriate [oe-core specific]
13
14Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
15
16---
17 configure.ac | 5 ++---
18 1 file changed, 2 insertions(+), 3 deletions(-)
19
20diff --git a/configure.ac b/configure.ac
21index df892c9..8c6194e 100644
22--- a/configure.ac
23+++ b/configure.ac
24@@ -590,9 +590,8 @@ if test "$found_py" = "1"; then
25 if test "$found_py" = "1" -o "$found_py3" = "1"; then
26 # Reset everything, so that we can look for another Python.
27 m4_foreach([mym4pythonver],
28- [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[3.10],
29- [3.11],[3.12],[all]],
30- [unset PYTHON
31+ [[2.7],[3.7]],
32+ [
33 unset PYTHON_VERSION
34 unset PYTHON_CPPFLAGS
35 unset PYTHON_LDFLAGS
diff --git a/meta/recipes-support/gpgme/gpgme_1.23.2.bb b/meta/recipes-support/gpgme/gpgme_1.24.3.bb
index d8807b3af2..64e3c6635a 100644
--- a/meta/recipes-support/gpgme/gpgme_1.23.2.bb
+++ b/meta/recipes-support/gpgme/gpgme_1.24.3.bb
@@ -3,11 +3,18 @@ DESCRIPTION = "GnuPG Made Easy (GPGME) is a library designed to make access to G
3HOMEPAGE = "http://www.gnupg.org/gpgme.html" 3HOMEPAGE = "http://www.gnupg.org/gpgme.html"
4BUGTRACKER = "https://bugs.g10code.com/gnupg/index" 4BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
5 5
6LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" 6LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & GPL-3.0-or-later"
7LICENSE:${PN} = "GPL-2.0-or-later & LGPL-2.1-or-later"
8LICENSE:${PN}-cpp = "GPL-2.0-or-later & LGPL-2.1-or-later"
9LICENSE:${PN}-tool = "GPL-3.0-or-later"
10LICENSE:python3-gpg = "GPL-2.0-or-later & LGPL-2.1-or-later"
11
7LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ 12LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
8 file://COPYING.LESSER;md5=bbb461211a33b134d42ed5ee802b37ff \ 13 file://COPYING.LESSER;md5=bbb461211a33b134d42ed5ee802b37ff \
9 file://src/gpgme.h.in;endline=23;md5=2f0bf06d1c7dcb28532a9d0f94a7ca1d \ 14 file://src/gpgme.h.in;endline=23;md5=2f0bf06d1c7dcb28532a9d0f94a7ca1d \
10 file://src/engine.h;endline=22;md5=4b6d8ba313d9b564cc4d4cfb1640af9d" 15 file://src/engine.h;endline=22;md5=4b6d8ba313d9b564cc4d4cfb1640af9d \
16 file://src/gpgme-tool.c;endline=21;md5=66c5381e0e05475792e24982d15e7ce8 \
17 "
11 18
12UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" 19UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
13SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \ 20SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \
@@ -15,16 +22,14 @@ SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \
15 file://0001-pkgconfig.patch \ 22 file://0001-pkgconfig.patch \
16 file://0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch \ 23 file://0002-gpgme-lang-python-gpg-error-config-should-not-be-use.patch \
17 file://0003-Correctly-install-python-modules.patch \ 24 file://0003-Correctly-install-python-modules.patch \
18 file://0004-python-import.patch \
19 file://0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch \ 25 file://0005-gpgme-config-skip-all-lib-or-usr-lib-directories-in-.patch \
20 file://0006-fix-build-path-issue.patch \ 26 file://0006-fix-build-path-issue.patch \
21 file://0008-do-not-auto-check-var-PYTHON.patch \
22 file://0001-use-closefrom-on-linux-and-glibc-2.34.patch \ 27 file://0001-use-closefrom-on-linux-and-glibc-2.34.patch \
23 file://0001-posix-io.c-Use-off_t-instead-of-off64_t.patch \ 28 file://0001-posix-io.c-Use-off_t-instead-of-off64_t.patch \
24 file://0001-autogen.sh-remove-unknown-in-version.patch \ 29 file://0001-autogen.sh-remove-unknown-in-version.patch \
25 " 30 "
26 31
27SRC_URI[sha256sum] = "9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224" 32SRC_URI[sha256sum] = "bfc17f5bd1b178c8649fdd918956d277080f33df006a2dc40acdecdce68c50dd"
28 33
29PYTHON_DEPS = "${@bb.utils.contains('LANGUAGES', 'python', 'swig-native', '', d)}" 34PYTHON_DEPS = "${@bb.utils.contains('LANGUAGES', 'python', 'swig-native', '', d)}"
30 35
@@ -33,6 +38,8 @@ RDEPENDS:${PN}-cpp += "libstdc++"
33 38
34RDEPENDS:python3-gpg += "python3-unixadmin" 39RDEPENDS:python3-gpg += "python3-unixadmin"
35 40
41RRECOMMENDS:${PN} += "${PN}-tool"
42
36BINCONFIG = "${bindir}/gpgme-config" 43BINCONFIG = "${bindir}/gpgme-config"
37 44
38# Default in configure.ac: "cl cpp python qt" 45# Default in configure.ac: "cl cpp python qt"
@@ -57,13 +64,14 @@ EXTRA_OECONF += '--enable-languages="${LANGUAGES}" \
57inherit autotools texinfo binconfig-disabled pkgconfig multilib_header 64inherit autotools texinfo binconfig-disabled pkgconfig multilib_header
58inherit_defer ${PYTHON_INHERIT} python3native 65inherit_defer ${PYTHON_INHERIT} python3native
59 66
60export PKG_CONFIG='pkg-config' 67export PKG_CONFIG = 'pkg-config'
61 68
62BBCLASSEXTEND = "native nativesdk" 69BBCLASSEXTEND = "native nativesdk"
63 70
64PACKAGES =+ "${PN}-cpp python3-gpg" 71PACKAGES =+ "${PN}-cpp ${PN}-tool python3-gpg"
65 72
66FILES:${PN}-cpp = "${libdir}/libgpgmepp.so.*" 73FILES:${PN}-cpp = "${libdir}/libgpgmepp.so.*"
74FILES:${PN}-tool = "${bindir}/gpgme-tool"
67FILES:python3-gpg = "${PYTHON_SITEPACKAGES_DIR}/*" 75FILES:python3-gpg = "${PYTHON_SITEPACKAGES_DIR}/*"
68FILES:${PN}-dev += "${datadir}/common-lisp/source/gpgme/*" 76FILES:${PN}-dev += "${datadir}/common-lisp/source/gpgme/*"
69 77
diff --git a/meta/recipes-support/hwdata/hwdata_0.396.bb b/meta/recipes-support/hwdata/hwdata_0.396.bb
new file mode 100644
index 0000000000..bf6dd9889e
--- /dev/null
+++ b/meta/recipes-support/hwdata/hwdata_0.396.bb
@@ -0,0 +1,28 @@
1SUMMARY = "Hardware identification and configuration data"
2DESCRIPTION = "hwdata contains various hardware identification and \
3configuration data, such as the pci.ids and usb.ids databases."
4HOMEPAGE = "https://github.com/vcrhonek/hwdata"
5SECTION = "System/Base"
6
7LICENSE = "GPL-2.0-or-later | X11"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
9
10SRC_URI = "git://github.com/vcrhonek/${BPN}.git;branch=master;protocol=https;tag=v${PV}"
11SRCREV = "736513dfc1d44c5fb48bead62af7e91c4e1d1dd2"
12
13inherit allarch
14
15do_configure() {
16 ${S}/configure --datadir=${datadir} --libdir=${libdir}
17}
18
19do_compile[noexec] = "1"
20
21do_install() {
22 oe_runmake install DESTDIR=${D}
23}
24
25FILES:${PN} = "${libdir}/* \
26 ${datadir}/* "
27
28BBCLASSEXTEND += "native"
diff --git a/meta/recipes-support/icu/icu/fix-install-manx.patch b/meta/recipes-support/icu/icu/fix-install-manx.patch
deleted file mode 100644
index 7526bde370..0000000000
--- a/meta/recipes-support/icu/icu/fix-install-manx.patch
+++ /dev/null
@@ -1,53 +0,0 @@
1From 2d544cac238eccbfc32cafc9502ddf6e00994211 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com>
3Date: Fri, 9 Oct 2015 17:50:41 +0100
4Subject: [PATCH] icu: fix install race
5
6The generic recursive target calls target-local so also adding it to the
7dependency list results in races due to install-local being executed twice in
8parallel. For example, install-manx can fail if the two install processes race
9and one process tries to chown a file that the other process has just deleted.
10
11Also install-manx should be a phony target, and for clarity use $^ instead of $?
12in the install command.
13
14Upstream-Status: Pending
15Signed-off-by: Ross Burton <ross.burton@intel.com>
16---
17 Makefile.in | 8 ++++----
18 1 file changed, 4 insertions(+), 4 deletions(-)
19
20diff --git a/Makefile.in b/Makefile.in
21index 8366f01..79b91c9 100644
22--- a/Makefile.in
23+++ b/Makefile.in
24@@ -77,7 +77,7 @@ EXTRA_DATA =
25
26 ## List of phony targets
27 .PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls \
28-install-recursive clean clean-local clean-recursive distclean \
29+install-recursive install-manx clean clean-local clean-recursive distclean \
30 distclean-local distclean-recursive doc dist dist-local dist-recursive \
31 check check-local check-recursive clean-recursive-with-twist install-icu \
32 doc install-doc tests icu4j-data icu4j-data-install update-windows-makefiles xcheck-local xcheck-recursive xperf xcheck xperf-recursive \
33@@ -88,9 +88,9 @@ check-exhaustive check-exhaustive-local check-exhaustive-recursive releaseDist
34
35 ## List of standard targets
36 all: all-local all-recursive
37-install: install-recursive install-local
38+install: install-recursive
39 clean: clean-recursive-with-twist clean-local
40-distclean : distclean-recursive distclean-local
41+distclean : distclean-recursive
42 dist: dist-recursive
43 check: all check-recursive
44 check-recursive: all
45@@ -357,7 +357,7 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h
46 install-manx: $(MANX_FILES)
47 $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
48 ifneq ($(MANX_FILES),)
49- $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
50+ $(INSTALL_DATA) $^ $(DESTDIR)$(mandir)/man$(SECTION)
51 endif
52
53 config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in
diff --git a/meta/recipes-support/icu/icu_74-2.bb b/meta/recipes-support/icu/icu_77-1.bb
index 8352bf2a5b..e655b18ad2 100644
--- a/meta/recipes-support/icu/icu_74-2.bb
+++ b/meta/recipes-support/icu/icu_77-1.bb
@@ -3,15 +3,14 @@ DESCRIPTION = "The International Component for Unicode (ICU) is a mature, \
3portable set of C/C++ and Java libraries for Unicode support, software \ 3portable set of C/C++ and Java libraries for Unicode support, software \
4internationalization (I18N) and globalization (G11N), giving applications the \ 4internationalization (I18N) and globalization (G11N), giving applications the \
5same results on all platforms." 5same results on all platforms."
6HOMEPAGE = "http://site.icu-project.org/" 6HOMEPAGE = "https://icu.unicode.org/"
7 7
8LICENSE = "ICU" 8LICENSE = "ICU"
9DEPENDS = "icu-native autoconf-archive-native" 9DEPENDS = "icu-native autoconf-archive-native"
10 10
11CVE_PRODUCT = "international_components_for_unicode" 11CVE_PRODUCT = "international_components_for_unicode"
12 12
13S = "${WORKDIR}/icu/source" 13S = "${UNPACKDIR}/icu/source"
14SPDX_S = "${WORKDIR}/icu"
15STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}" 14STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}"
16 15
17ICU_MAJOR_VER = "${@d.getVar('PV').split('-')[0]}" 16ICU_MAJOR_VER = "${@d.getVar('PV').split('-')[0]}"
@@ -21,16 +20,16 @@ inherit autotools pkgconfig github-releases
21# ICU needs the native build directory as an argument to its --with-cross-build option when 20# ICU needs the native build directory as an argument to its --with-cross-build option when
22# cross-compiling. Taken the situation that different builds may share a common sstate-cache 21# cross-compiling. Taken the situation that different builds may share a common sstate-cache
23# into consideration, the native build directory needs to be staged. 22# into consideration, the native build directory needs to be staged.
24EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config" 23EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='install -c'"
25EXTRA_OECONF:class-native = "--disable-icu-config" 24EXTRA_OECONF:class-native = "--disable-icu-config ac_cv_path_install='install -c'"
26EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config" 25EXTRA_OECONF:class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE} --disable-icu-config ac_cv_path_install='install -c'"
27 26
28EXTRA_OECONF:append:class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}" 27EXTRA_OECONF:append:class-target = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' --with-data-packaging=archive', '', d)}"
29TARGET_CXXFLAGS:append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${PV}\\""', '', d)}" 28TARGET_CXXFLAGS:append = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', ' -DICU_DATA_DIR=\\""${datadir}/${BPN}/${@icu_install_folder(d)}\\""', '', d)}"
30 29
31ASNEEDED = "" 30ASNEEDED = ""
32 31
33do_compile:prepend:class-target () { 32remove_build_host_references_from_libicutu () {
34 # Make sure certain build host references do not end up being compiled 33 # Make sure certain build host references do not end up being compiled
35 # in the image. This only affects libicutu and icu-dbg 34 # in the image. This only affects libicutu and icu-dbg
36 sed \ 35 sed \
@@ -39,6 +38,14 @@ do_compile:prepend:class-target () {
39 -i ${B}/tools/toolutil/Makefile 38 -i ${B}/tools/toolutil/Makefile
40} 39}
41 40
41do_compile:prepend:class-target () {
42 remove_build_host_references_from_libicutu
43}
44
45do_compile:prepend:class-nativesdk () {
46 remove_build_host_references_from_libicutu
47}
48
42PREPROCESS_RELOCATE_DIRS = "${datadir}/${BPN}/${PV}" 49PREPROCESS_RELOCATE_DIRS = "${datadir}/${BPN}/${PV}"
43do_install:append:class-native() { 50do_install:append:class-native() {
44 mkdir -p ${D}/${STAGING_ICU_DIR_NATIVE}/config 51 mkdir -p ${D}/${STAGING_ICU_DIR_NATIVE}/config
@@ -49,6 +56,15 @@ do_install:append:class-native() {
49 cp -r ${B}/tools ${D}/${STAGING_ICU_DIR_NATIVE} 56 cp -r ${B}/tools ${D}/${STAGING_ICU_DIR_NATIVE}
50} 57}
51 58
59remove_build_host_references() {
60 sed -i \
61 -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
62 -e 's|${DEBUG_PREFIX_MAP}||g' \
63 -e 's:${HOSTTOOLS_DIR}/::g' \
64 ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/Makefile.inc \
65 ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/pkgdata.inc
66}
67
52do_install:append:class-target() { 68do_install:append:class-target() {
53 # The native pkgdata can not generate the correct data file. 69 # The native pkgdata can not generate the correct data file.
54 # Use icupkg to re-generate it. 70 # Use icupkg to re-generate it.
@@ -56,14 +72,12 @@ do_install:append:class-target() {
56 rm -f ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat 72 rm -f ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat
57 icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat 73 icupkg -tb ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat ${D}/${datadir}/${BPN}/${@icu_install_folder(d)}/icudt${ICU_MAJOR_VER}b.dat
58 fi 74 fi
59 75
60 # Remove build host references... 76 remove_build_host_references
61 sed -i \ 77}
62 -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ 78
63 -e 's|${DEBUG_PREFIX_MAP}||g' \ 79do_install:append:class-nativesdk() {
64 -e 's:${HOSTTOOLS_DIR}/::g' \ 80 remove_build_host_references
65 ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/Makefile.inc \
66 ${D}/${libdir}/${BPN}/${@icu_install_folder(d)}/pkgdata.inc
67} 81}
68 82
69PACKAGES =+ "libicudata libicuuc libicui18n libicutu libicuio" 83PACKAGES =+ "libicudata libicuuc libicui18n libicutu libicuio"
@@ -78,7 +92,7 @@ FILES:libicuio = "${libdir}/libicuio.so.*"
78 92
79BBCLASSEXTEND = "native nativesdk" 93BBCLASSEXTEND = "native nativesdk"
80 94
81LIC_FILES_CHKSUM = "file://../LICENSE;md5=08dc3852df8fffa807301902ad899ff8" 95LIC_FILES_CHKSUM = "file://../LICENSE;md5=cf57d9459a2c5f88ecd83c75207cc5ff"
82 96
83def icu_download_version(d): 97def icu_download_version(d):
84 pvsplit = d.getVar('PV').split('-') 98 pvsplit = d.getVar('PV').split('-')
@@ -104,15 +118,14 @@ DATA_SRC_URI = "${GITHUB_BASE_URI}/download/release-${ICU_FOLDER}/icu4c-${ICU_PV
104SRC_URI = "${BASE_SRC_URI};name=code \ 118SRC_URI = "${BASE_SRC_URI};name=code \
105 ${DATA_SRC_URI};name=data \ 119 ${DATA_SRC_URI};name=data \
106 file://filter.json \ 120 file://filter.json \
107 file://fix-install-manx.patch \
108 file://0001-icu-Added-armeb-support.patch \ 121 file://0001-icu-Added-armeb-support.patch \
109 " 122 "
110 123
111SRC_URI:append:class-target = "\ 124SRC_URI:append:class-target = "\
112 file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \ 125 file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
113 " 126 "
114SRC_URI[code.sha256sum] = "68db082212a96d6f53e35d60f47d38b962e9f9d207a74cfac78029ae8ff5e08c" 127SRC_URI[code.sha256sum] = "588e431f77327c39031ffbb8843c0e3bc122c211374485fa87dc5f3faff24061"
115SRC_URI[data.sha256sum] = "c28c3ca5f4ba3384781797138a294ca360988d4322674ad4d51e52f5d9b0a2b6" 128SRC_URI[data.sha256sum] = "1e08bfafa442260ccabf9a872d4eab12de813d42b90769df056bab032b37e1d3"
116 129
117UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>(?!.+rc).+)" 130UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>(?!.+rc).+)"
118GITHUB_BASE_URI = "https://github.com/unicode-org/icu/releases" 131GITHUB_BASE_URI = "https://github.com/unicode-org/icu/releases"
@@ -126,7 +139,7 @@ do_make_icudata:class-target () {
126 ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)} 139 ${@bb.utils.contains('PACKAGECONFIG', 'make-icudata', '', 'exit 0', d)}
127 cd ${S} 140 cd ${S}
128 rm -rf data 141 rm -rf data
129 cp -a ${WORKDIR}/data . 142 cp -a ${UNPACKDIR}/data .
130 AR='${BUILD_AR}' \ 143 AR='${BUILD_AR}' \
131 CC='${BUILD_CC}' \ 144 CC='${BUILD_CC}' \
132 CPP='${BUILD_CPP}' \ 145 CPP='${BUILD_CPP}' \
@@ -136,7 +149,7 @@ do_make_icudata:class-target () {
136 CPPFLAGS='${BUILD_CPPFLAGS}' \ 149 CPPFLAGS='${BUILD_CPPFLAGS}' \
137 CXXFLAGS='${BUILD_CXXFLAGS}' \ 150 CXXFLAGS='${BUILD_CXXFLAGS}' \
138 LDFLAGS='${BUILD_LDFLAGS}' \ 151 LDFLAGS='${BUILD_LDFLAGS}' \
139 ICU_DATA_FILTER_FILE=${WORKDIR}/filter.json \ 152 ICU_DATA_FILTER_FILE=${UNPACKDIR}/filter.json \
140 ./runConfigureICU Linux --with-data-packaging=archive 153 ./runConfigureICU Linux --with-data-packaging=archive
141 oe_runmake 154 oe_runmake
142 install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat 155 install -Dm644 ${S}/data/out/icudt${ICU_MAJOR_VER}l.dat ${S}/data/in/icudt${ICU_MAJOR_VER}l.dat
diff --git a/meta/recipes-support/iso-codes/iso-codes_4.16.0.bb b/meta/recipes-support/iso-codes/iso-codes_4.18.0.bb
index f33cce1a9d..1ee9f5a8f5 100644
--- a/meta/recipes-support/iso-codes/iso-codes_4.16.0.bb
+++ b/meta/recipes-support/iso-codes/iso-codes_4.18.0.bb
@@ -6,17 +6,15 @@ HOMEPAGE = "https://salsa.debian.org/iso-codes-team/iso-codes"
6BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues" 6BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues"
7 7
8LICENSE = "LGPL-2.1-only" 8LICENSE = "LGPL-2.1-only"
9LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 9LIC_FILES_CHKSUM = "file://COPYING;md5=4bf661c1e3793e55c8d1051bc5e0ae21"
10 10
11SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=https;branch=main;" 11SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=https;branch=main;tag=v${PV}"
12SRCREV = "c2fcaadc832ed9f858950a43994973442d85ef4f" 12SRCREV = "5be4d112d420706eacd913a3ebd85549fe9eeae4"
13 13
14# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which 14# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which
15# are inhibited by allarch 15# are inhibited by allarch
16DEPENDS = "gettext-native" 16DEPENDS = "gettext-native"
17 17
18S = "${WORKDIR}/git"
19
20inherit allarch autotools 18inherit allarch autotools
21 19
22FILES:${PN} += "${datadir}/xml/" 20FILES:${PN} += "${datadir}/xml/"
diff --git a/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch b/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch
index fe811254d3..20361e8a99 100644
--- a/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch
+++ b/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch
@@ -1,6 +1,7 @@
1Add pkgconfig support to libassuan. 1From 9d28122b7e7ae3f17364e1ab97355cf5eaf14cb8 Mon Sep 17 00:00:00 2001
2This patch is rejected by upstream for the reason below: 2From: Trevor Gamblin <tgamblin@baylibre.com>
3They think pkgconfig adds no portability and maintaining them is not worthwhile. 3Date: Wed, 7 Aug 2024 11:36:26 -0400
4Subject: [PATCH] libassuan: add pkgconfig support
4 5
5Upstream-Status: Denied 6Upstream-Status: Denied
6Signed-off-by: Chen Qi <Qi.Chen@windriver.com> 7Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
@@ -8,18 +9,23 @@ Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
8 9
9forward ported to 2.4.4 10forward ported to 2.4.4
10Signed-off-by: Armin Kuster <akuster@mvista.com> 11Signed-off-by: Armin Kuster <akuster@mvista.com>
12
13Refactor to apply on top of 3.0.1, including reformatting as an mbox for
14easier use.
15
16Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
11--- 17---
12 src/libassuan.m4 | 81 ++---------------------------------------------- 18 src/libassuan.m4 | 81 ++----------------------------------------------
13 1 file changed, 3 insertions(+), 78 deletions(-) 19 1 file changed, 3 insertions(+), 78 deletions(-)
14 20
15diff --git a/src/libassuan.m4 b/src/libassuan.m4 21diff --git a/src/libassuan.m4 b/src/libassuan.m4
16index df50484..380a48a 100644 22index 4d7da17..f4692ab 100644
17--- a/src/libassuan.m4 23--- a/src/libassuan.m4
18+++ b/src/libassuan.m4 24+++ b/src/libassuan.m4
19@@ -17,27 +17,6 @@ dnl Returns ok set to yes or no. 25@@ -103,27 +103,6 @@ dnl
20 dnl
21 AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], 26 AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
22 [ AC_REQUIRE([AC_CANONICAL_HOST]) 27 [ AC_REQUIRE([AC_CANONICAL_HOST])dnl
28 AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
23- AC_ARG_WITH(libassuan-prefix, 29- AC_ARG_WITH(libassuan-prefix,
24- AS_HELP_STRING([--with-libassuan-prefix=PFX], 30- AS_HELP_STRING([--with-libassuan-prefix=PFX],
25- [prefix where LIBASSUAN is installed (optional)]), 31- [prefix where LIBASSUAN is installed (optional)]),
@@ -31,7 +37,7 @@ index df50484..380a48a 100644
31- fi 37- fi
32- 38-
33- use_gpgrt_config="" 39- use_gpgrt_config=""
34- if test x"${LIBASSUAN_CONFIG}" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then 40- if test x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
35- if $GPGRT_CONFIG libassuan --exists; then 41- if $GPGRT_CONFIG libassuan --exists; then
36- LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan" 42- LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan"
37- AC_MSG_NOTICE([Use gpgrt-config as libassuan-config]) 43- AC_MSG_NOTICE([Use gpgrt-config as libassuan-config])
@@ -44,11 +50,10 @@ index df50484..380a48a 100644
44 50
45 tmp=ifelse([$1], ,1:0.9.2,$1) 51 tmp=ifelse([$1], ,1:0.9.2,$1)
46 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 52 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
47@@ -47,59 +26,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], 53@@ -134,59 +113,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
48 req_libassuan_api=0
49 min_libassuan_version="$tmp" 54 min_libassuan_version="$tmp"
50 fi 55 fi
51- 56
52- AC_MSG_CHECKING(for LIBASSUAN - version >= $min_libassuan_version) 57- AC_MSG_CHECKING(for LIBASSUAN - version >= $min_libassuan_version)
53- ok=no 58- ok=no
54- if test "$LIBASSUAN_CONFIG" != "no"; then 59- if test "$LIBASSUAN_CONFIG" != "no"; then
@@ -90,6 +95,7 @@ index df50484..380a48a 100644
90- 95-
91- if test $ok = yes; then 96- if test $ok = yes; then
92- AC_MSG_RESULT([yes ($libassuan_config_version)]) 97- AC_MSG_RESULT([yes ($libassuan_config_version)])
98- AC_DEFINE_UNQUOTED(LIBASSUAN_API_REQUESTED, $req_libassuan_api, [Requested API version for libassuan])
93- else 99- else
94- AC_MSG_RESULT(no) 100- AC_MSG_RESULT(no)
95- fi 101- fi
@@ -106,7 +112,7 @@ index df50484..380a48a 100644
106 if test "$tmp" -gt 0 ; then 112 if test "$tmp" -gt 0 ; then
107 AC_MSG_CHECKING([LIBASSUAN API version]) 113 AC_MSG_CHECKING([LIBASSUAN API version])
108 if test "$req_libassuan_api" -eq "$tmp" ; then 114 if test "$req_libassuan_api" -eq "$tmp" ; then
109@@ -115,9 +46,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], 115@@ -204,9 +135,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
110 if test $ok = yes; then 116 if test $ok = yes; then
111 if test x"$host" != x ; then 117 if test x"$host" != x ; then
112 if test -z "$use_gpgrt_config"; then 118 if test -z "$use_gpgrt_config"; then
@@ -117,7 +123,7 @@ index df50484..380a48a 100644
117 fi 123 fi
118 if test x"$libassuan_config_host" != xnone ; then 124 if test x"$libassuan_config_host" != xnone ; then
119 if test x"$libassuan_config_host" != x"$host" ; then 125 if test x"$libassuan_config_host" != x"$host" ; then
120@@ -159,12 +88,8 @@ dnl 126@@ -248,12 +177,8 @@ dnl
121 AC_DEFUN([AM_PATH_LIBASSUAN], 127 AC_DEFUN([AM_PATH_LIBASSUAN],
122 [ _AM_PATH_LIBASSUAN_COMMON($1) 128 [ _AM_PATH_LIBASSUAN_COMMON($1)
123 if test $ok = yes; then 129 if test $ok = yes; then
@@ -131,5 +137,5 @@ index df50484..380a48a 100644
131 fi 137 fi
132 AC_SUBST(LIBASSUAN_CFLAGS) 138 AC_SUBST(LIBASSUAN_CFLAGS)
133-- 139--
1342.25.1 1402.43.0
135 141
diff --git a/meta/recipes-support/libassuan/libassuan_2.5.7.bb b/meta/recipes-support/libassuan/libassuan_3.0.2.bb
index d1e622635f..0d2ccce989 100644
--- a/meta/recipes-support/libassuan/libassuan_2.5.7.bb
+++ b/meta/recipes-support/libassuan/libassuan_3.0.2.bb
@@ -20,12 +20,14 @@ SRC_URI = "${GNUPG_MIRROR}/libassuan/libassuan-${PV}.tar.bz2 \
20 file://libassuan-add-pkgconfig-support.patch \ 20 file://libassuan-add-pkgconfig-support.patch \
21 " 21 "
22 22
23SRC_URI[sha256sum] = "0103081ffc27838a2e50479153ca105e873d3d65d8a9593282e9c94c7e6afb76" 23SRC_URI[sha256sum] = "d2931cdad266e633510f9970e1a2f346055e351bb19f9b78912475b8074c36f6"
24 24
25BINCONFIG = "${bindir}/libassuan-config" 25BINCONFIG = "${bindir}/libassuan-config"
26 26
27inherit autotools texinfo binconfig-disabled pkgconfig multilib_header 27inherit autotools texinfo binconfig-disabled pkgconfig multilib_header
28 28
29require recipes-support/gnupg/drop-unknown-suffix.inc
30
29do_configure:prepend () { 31do_configure:prepend () {
30 # Else these could be used in preference to those in aclocal-copy 32 # Else these could be used in preference to those in aclocal-copy
31 rm -f ${S}/m4/*.m4 33 rm -f ${S}/m4/*.m4
diff --git a/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb b/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb
index 824400e743..00994dfae0 100644
--- a/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb
+++ b/meta/recipes-support/libatomic-ops/libatomic-ops_7.8.2.bb
@@ -1,6 +1,6 @@
1SUMMARY = "A library for atomic integer operations" 1SUMMARY = "A library for atomic integer operations"
2DESCRIPTION = "Package provides semi-portable access to hardware-provided atomic memory update operations on a number of architectures." 2DESCRIPTION = "Package provides semi-portable access to hardware-provided atomic memory update operations on a number of architectures."
3HOMEPAGE = "https://github.com/ivmai/libatomic_ops/" 3HOMEPAGE = "https://github.com/bdwgc/libatomic_ops/"
4SECTION = "optional" 4SECTION = "optional"
5PROVIDES += "libatomics-ops" 5PROVIDES += "libatomics-ops"
6LICENSE = "GPL-2.0-only & MIT" 6LICENSE = "GPL-2.0-only & MIT"
@@ -9,11 +9,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
9 " 9 "
10 10
11SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libatomic_ops-${PV}.tar.gz" 11SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libatomic_ops-${PV}.tar.gz"
12GITHUB_BASE_URI = "https://github.com/ivmai/libatomic_ops/releases" 12GITHUB_BASE_URI = "https://github.com/bdwgc/libatomic_ops/releases"
13 13
14SRC_URI[sha256sum] = "d305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2419b51" 14SRC_URI[sha256sum] = "d305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2419b51"
15 15
16S = "${WORKDIR}/libatomic_ops-${PV}" 16CVE_PRODUCT = "libatomic_ops"
17
18S = "${UNPACKDIR}/libatomic_ops-${PV}"
17 19
18ALLOW_EMPTY:${PN} = "1" 20ALLOW_EMPTY:${PN} = "1"
19 21
diff --git a/meta/recipes-support/libbsd/libbsd_0.12.2.bb b/meta/recipes-support/libbsd/libbsd_0.12.2.bb
index 7d5e88f293..39ecda26af 100644
--- a/meta/recipes-support/libbsd/libbsd_0.12.2.bb
+++ b/meta/recipes-support/libbsd/libbsd_0.12.2.bb
@@ -3,8 +3,8 @@ DESCRIPTION = "This library provides useful functions commonly found on BSD syst
3 and lacking on others like GNU systems, thus making it easier to port \ 3 and lacking on others like GNU systems, thus making it easier to port \
4 projects with strong BSD origins, without needing to embed the same \ 4 projects with strong BSD origins, without needing to embed the same \
5 code over and over again on each project." 5 code over and over again on each project."
6
7HOMEPAGE = "https://libbsd.freedesktop.org/wiki/" 6HOMEPAGE = "https://libbsd.freedesktop.org/wiki/"
7
8# There seems to be more licenses used in the code, I don't think we want to list them all here, complete list: 8# There seems to be more licenses used in the code, I don't think we want to list them all here, complete list:
9# OE @ ~/projects/libbsd $ grep ^License: COPYING | sort -u 9# OE @ ~/projects/libbsd $ grep ^License: COPYING | sort -u
10# License: BSD-2-clause 10# License: BSD-2-clause
@@ -15,25 +15,15 @@ HOMEPAGE = "https://libbsd.freedesktop.org/wiki/"
15# License: BSD-3-clause-author 15# License: BSD-3-clause-author
16# License: BSD-3-clause-John-Birrell 16# License: BSD-3-clause-John-Birrell
17# License: BSD-3-clause-Regents 17# License: BSD-3-clause-Regents
18# License: BSD-4-clause-Christopher-G-Demetriou
19# License: BSD-4-clause-Niels-Provos
20# License: BSD-5-clause-Peter-Wemm 18# License: BSD-5-clause-Peter-Wemm
21# License: Beerware 19# License: Beerware
22# License: Expat 20# License: Expat
23# License: ISC 21# License: ISC
24# License: ISC-Original 22# License: ISC-Original
25# License: public-domain 23# License: public-domain
26# License: public-domain-Colin-Plumb 24LICENSE = "BSD-3-Clause & ISC & PD"
27LICENSE = "BSD-3-Clause & BSD-4-Clause & ISC & PD"
28LICENSE:${PN} = "BSD-3-Clause & ISC & PD"
29LICENSE:${PN}-dbg = "BSD-3-Clause & ISC & PD"
30LICENSE:${PN}-dev = "BSD-3-Clause & ISC & PD"
31LICENSE:${PN}-doc = "BSD-3-Clause & BSD-4-Clause & ISC & PD"
32LICENSE:${PN}-locale = "BSD-3-Clause & ISC & PD"
33LICENSE:${PN}-src = "BSD-3-Clause & ISC & PD"
34LICENSE:${PN}-staticdev = "BSD-3-Clause & ISC & PD"
35
36LIC_FILES_CHKSUM = "file://COPYING;md5=9b087a0981a1fcad42efbba6d4925a0f" 25LIC_FILES_CHKSUM = "file://COPYING;md5=9b087a0981a1fcad42efbba6d4925a0f"
26
37SECTION = "libs" 27SECTION = "libs"
38 28
39SRC_URI = "https://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz" 29SRC_URI = "https://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
diff --git a/meta/recipes-support/libcap-ng/files/0001-Fix-python-path-when-invoking-py-compile-54.patch b/meta/recipes-support/libcap-ng/files/0001-Fix-python-path-when-invoking-py-compile-54.patch
new file mode 100644
index 0000000000..a0452ad53d
--- /dev/null
+++ b/meta/recipes-support/libcap-ng/files/0001-Fix-python-path-when-invoking-py-compile-54.patch
@@ -0,0 +1,34 @@
1From 1fe7c1cfeea00ba4eb903fbb39b74361594d4835 Mon Sep 17 00:00:00 2001
2From: Jan Palus <jpalus@fastmail.com>
3Date: Wed, 10 Apr 2024 21:30:51 +0200
4Subject: [PATCH] Fix python path when invoking py-compile (#54)
5
648eebb2 replaced custom PYTHON3 variable with PYTHON by using standard
7AM_PATH_PYTHON macro. Makefile however still referred to old one.
8There's no need to set PYTHON explicitly anymore so drop it.
9
10Fixes #53
11
12Upstream-Status: Backport
13[https://github.com/stevegrubb/libcap-ng/commit/1fe7c1cfeea00ba4eb903fbb39b74361594d4835]
14
15Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
16---
17 bindings/python3/Makefile.am | 1 -
18 1 file changed, 1 deletion(-)
19
20diff --git a/bindings/python3/Makefile.am b/bindings/python3/Makefile.am
21index 70a1dd8..6072fc2 100644
22--- a/bindings/python3/Makefile.am
23+++ b/bindings/python3/Makefile.am
24@@ -27,7 +27,6 @@ AM_CPPFLAGS = -I. -I$(top_builddir) $(PYTHON3_INCLUDES)
25 LIBS = ${top_builddir}/src/libcap-ng.la
26 SWIG_FLAGS = -python
27 SWIG_INCLUDES = ${AM_CPPFLAGS}
28-PYTHON = $(PYTHON3)
29 pyexec_PYTHON = capng.py
30 pyexec_LTLIBRARIES = _capng.la
31 pyexec_SOLIBRARIES = _capng.so
32--
332.25.1
34
diff --git a/meta/recipes-support/libcap-ng/files/fix-issues-with-swig-4-2.patch b/meta/recipes-support/libcap-ng/files/fix-issues-with-swig-4-2.patch
deleted file mode 100644
index fb424fe725..0000000000
--- a/meta/recipes-support/libcap-ng/files/fix-issues-with-swig-4-2.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 355eada2d20886287cffc16e304087dd6f66ae37 Mon Sep 17 00:00:00 2001
2From: Steve Grubb <ausearch.1@gmail.com>
3Date: Thu, 4 Jan 2024 15:06:29 -0500
4Subject: [PATCH] Remove python global exception handler since its deprecated
5
6Upstream-Status: Backport [https://github.com/stevegrubb/libcap-ng/commit/30453b6553948cd05c438f9f509013e3bb84f25b]
7Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
8---
9 bindings/src/capng_swig.i | 7 -------
10 1 file changed, 7 deletions(-)
11
12diff --git a/bindings/src/capng_swig.i b/bindings/src/capng_swig.i
13index fcdaf18..fa85e13 100644
14--- a/bindings/src/capng_swig.i
15+++ b/bindings/src/capng_swig.i
16@@ -30,13 +30,6 @@
17
18 %varargs(16, signed capability = 0) capng_updatev;
19
20-%except(python) {
21- $action
22- if (result < 0) {
23- PyErr_SetFromErrno(PyExc_OSError);
24- return NULL;
25- }
26-}
27 #endif
28
29 %define __signed__
30--
312.43.2
32
diff --git a/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb b/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb
deleted file mode 100644
index 4790134ae9..0000000000
--- a/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb
+++ /dev/null
@@ -1,29 +0,0 @@
1require libcap-ng.inc
2
3FILESEXTRAPATHS:prepend := "${THISDIR}/libcap-ng:"
4
5SUMMARY .= " - python"
6
7inherit lib_package autotools python3targetconfig
8
9# drop setuptools when version > 0.8.3 is released; it's needed only for distutils
10DEPENDS += "libcap-ng python3 swig-native python3-setuptools-native"
11
12S = "${WORKDIR}/libcap-ng-${PV}"
13
14EXTRA_OECONF += "--with-python3"
15
16do_install:append() {
17 rm -rf ${D}${bindir}
18 rm -rf ${D}${libdir}/.debug
19 rm -f ${D}${libdir}/lib*
20 rm -rf ${D}${libdir}/pkgconfig
21 rm -rf ${D}${datadir}
22 rm -rf ${D}${includedir}
23}
24
25# PACKAGES = "${PN}"
26
27FILES:${PN} = "${libdir}/python${PYTHON_BASEVERSION}"
28FILES:${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/.debug/_capng.so"
29
diff --git a/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.5.bb b/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.5.bb
new file mode 100644
index 0000000000..f702056f02
--- /dev/null
+++ b/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.5.bb
@@ -0,0 +1,17 @@
1require libcap-ng.inc
2
3FILESEXTRAPATHS:prepend := "${THISDIR}/libcap-ng:"
4
5SUMMARY .= " - python"
6
7inherit python3targetconfig
8
9DEPENDS += "libcap-ng python3 swig-native"
10
11EXTRA_OECONF += "--with-python3"
12
13do_install() {
14 oe_runmake 'DESTDIR=${D}' install -C ${B}/bindings/python3
15}
16
17FILES:${PN} = "${libdir}/python${PYTHON_BASEVERSION}"
diff --git a/meta/recipes-support/libcap-ng/libcap-ng.inc b/meta/recipes-support/libcap-ng/libcap-ng.inc
index 845b7c2f0a..ed8712bf2b 100644
--- a/meta/recipes-support/libcap-ng/libcap-ng.inc
+++ b/meta/recipes-support/libcap-ng/libcap-ng.inc
@@ -1,17 +1,22 @@
1SUMMARY = "An alternate posix capabilities library" 1SUMMARY = "An alternate posix capabilities library"
2DESCRIPTION = "The libcap-ng library is intended to make programming \ 2DESCRIPTION = "The libcap-ng library is intended to make programming \
3with POSIX capabilities much easier than the traditional libcap library." 3with POSIX capabilities much easier than the traditional libcap library."
4HOMEPAGE = "http://freecode.com/projects/libcap-ng" 4HOMEPAGE = "https://github.com/stevegrubb/libcap-ng"
5SECTION = "base" 5SECTION = "base"
6LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" 6LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
7LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ 7LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
8 file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06" 8 file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
9 9
10SRC_URI = "https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \ 10SRC_URI = "git://github.com/stevegrubb/libcap-ng.git;protocol=https;branch=master \
11 file://fix-issues-with-swig-4-2.patch \ 11 file://0001-Fix-python-path-when-invoking-py-compile-54.patch \
12 " 12 "
13SRCREV = "f5d39702622208b3ada064d7b2eaeaf1454c9bd3"
13 14
14SRC_URI[sha256sum] = "68581d3b38e7553cb6f6ddf7813b1fc99e52856f21421f7b477ce5abd2605a8a" 15inherit lib_package autotools
16
17do_configure:prepend() {
18 touch ${S}/NEWS
19}
15 20
16EXTRA_OECONF:append:class-target = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h" 21EXTRA_OECONF:append:class-target = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h"
17EXTRA_OECONF:append:class-nativesdk = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h" 22EXTRA_OECONF:append:class-nativesdk = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h"
diff --git a/meta/recipes-support/libcap-ng/libcap-ng_0.8.4.bb b/meta/recipes-support/libcap-ng/libcap-ng_0.8.5.bb
index 3dbe3e2ffd..b482368a41 100644
--- a/meta/recipes-support/libcap-ng/libcap-ng_0.8.4.bb
+++ b/meta/recipes-support/libcap-ng/libcap-ng_0.8.5.bb
@@ -1,7 +1,5 @@
1require libcap-ng.inc 1require libcap-ng.inc
2 2
3inherit lib_package autotools
4
5EXTRA_OECONF += "--without-python3" 3EXTRA_OECONF += "--without-python3"
6 4
7BBCLASSEXTEND = "native nativesdk" 5BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch b/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch
deleted file mode 100644
index 05c771ac10..0000000000
--- a/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1Ensure the XATTR_NAME_CAPS is defined when it is used
2
3Upstream-Status: Pending
4
5VFS_CAP_U32 can not ensure that XATTR_NAME_CAPS is defined, and failed to build
6libcap-native in old release, like CentOS release 6.7 (Final), with the blow
7error:
8 cap_file.c: In function ‘cap_get_fd’:
9 cap_file.c:199: error: ‘XATTR_NAME_CAPS’ undeclared (first use in this function)
10 cap_file.c:199: error: (Each undeclared identifier is reported only once
11
12Signed-off-by: Roy Li <rongqing.li@windriver.com>
13---
14 libcap/cap_file.c | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/libcap/cap_file.c b/libcap/cap_file.c
18index 40756ea..e27ca80 100644
19--- a/libcap/cap_file.c
20+++ b/libcap/cap_file.c
21@@ -25,7 +25,7 @@ extern int fremovexattr(int, const char *);
22
23 #include "libcap.h"
24
25-#ifdef VFS_CAP_U32
26+#if defined (VFS_CAP_U32) && defined (XATTR_NAME_CAPS)
27
28 #if VFS_CAP_U32 != __CAP_BLKS
29 # error VFS representation of capabilities is not the same size as kernel
30--
312.8.1
32
diff --git a/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch b/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch
index 2ac1e6e560..2cec20b4b1 100644
--- a/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch
+++ b/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch
@@ -1,4 +1,4 @@
1From 709aa8e156415215b0bb034d05b2aa2f44be044e Mon Sep 17 00:00:00 2001 1From 969d21aa2bf474d9c5c80a64de1a9fe0e17e31b2 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Thu, 14 Oct 2021 15:57:36 +0800 3Date: Thu, 14 Oct 2021 15:57:36 +0800
4Subject: [PATCH] nativesdk-libcap: Raise the size of arrays containing dl 4Subject: [PATCH] nativesdk-libcap: Raise the size of arrays containing dl
@@ -14,18 +14,17 @@ the strings in a certain path.
14Upstream-Status: Inappropriate [SDK specific] 14Upstream-Status: Inappropriate [SDK specific]
15 15
16Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 16Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
17
18--- 17---
19 libcap/execable.h | 2 +- 18 libcap/execable.h | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-) 19 1 file changed, 1 insertion(+), 1 deletion(-)
21 20
22diff --git a/libcap/execable.h b/libcap/execable.h 21diff --git a/libcap/execable.h b/libcap/execable.h
23index fee17b4..5bb0c55 100644 22index a68ea24..60d3853 100644
24--- a/libcap/execable.h 23--- a/libcap/execable.h
25+++ b/libcap/execable.h 24+++ b/libcap/execable.h
26@@ -23,7 +23,7 @@ 25@@ -34,7 +34,7 @@ extern const int _IO_stdin_used;
27 #endif 26 const int _IO_stdin_used __attribute__((weak)) = 131073;
28 #define __EXECABLE_H 27 #endif /* def __GLIBC__ */
29 28
30-const char __execable_dl_loader[] __attribute((section(".interp"))) = 29-const char __execable_dl_loader[] __attribute((section(".interp"))) =
31+const char __execable_dl_loader[4096] __attribute((section(".interp"))) = 30+const char __execable_dl_loader[4096] __attribute((section(".interp"))) =
diff --git a/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch b/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch
deleted file mode 100644
index 20346cf2fb..0000000000
--- a/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 10212b6d4e8843feffbeab5336342d97f3a46bb2 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 20 Dec 2019 16:54:05 +0100
4Subject: [PATCH] tests: do not run target executables
5
6Upstream-Status: Inappropriate [oe-core specific]
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8
9---
10 tests/Makefile | 2 --
11 1 file changed, 2 deletions(-)
12
13diff --git a/tests/Makefile b/tests/Makefile
14index ecb7d1b..8950c73 100644
15--- a/tests/Makefile
16+++ b/tests/Makefile
17@@ -61,13 +61,11 @@ endif
18
19 # unprivileged
20 run_psx_test: psx_test
21- ./psx_test
22
23 psx_test: psx_test.c $(DEPS)
24 $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBPSXLIB)
25
26 run_libcap_psx_test: libcap_psx_test
27- ./libcap_psx_test
28
29 libcap_psx_test: libcap_psx_test.c $(DEPS)
30 $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB)
diff --git a/meta/recipes-support/libcap/libcap_2.69.bb b/meta/recipes-support/libcap/libcap_2.76.bb
index 92fa766d37..c842246fc0 100644
--- a/meta/recipes-support/libcap/libcap_2.69.bb
+++ b/meta/recipes-support/libcap/libcap_2.76.bb
@@ -3,34 +3,30 @@ DESCRIPTION = "A library providing the API to access POSIX capabilities. \
3These allow giving various kinds of specific privileges to individual \ 3These allow giving various kinds of specific privileges to individual \
4users, without giving them full root permissions." 4users, without giving them full root permissions."
5HOMEPAGE = "http://sites.google.com/site/fullycapable/" 5HOMEPAGE = "http://sites.google.com/site/fullycapable/"
6# no specific GPL version required 6
7LICENSE = "BSD-3-Clause | GPL-2.0-only" 7# The library is BSD | GPLv2, the PAM module is BSD | LGPLv2+
8LIC_FILES_CHKSUM_PAM = "file://pam_cap/License;md5=905326f41d3d1f8df21943f9a4ed6b50" 8LICENSE = "(BSD-3-Clause | GPL-2.0-only) & (BSD-3-Clause | LGPL-2.0-or-later)"
9LIC_FILES_CHKSUM = "file://License;md5=2965a646645b72ecee859b43c592dcaa \ 9LIC_FILES_CHKSUM = "file://License;md5=2965a646645b72ecee859b43c592dcaa \
10 ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${LIC_FILES_CHKSUM_PAM}', '', d)} \ 10 file://pam_cap/License;md5=905326f41d3d1f8df21943f9a4ed6b50 \
11 " 11 "
12 12
13DEPENDS = "hostperl-runtime-native gperf-native" 13DEPENDS = "hostperl-runtime-native gperf-native"
14 14
15SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \ 15SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz"
16 file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \
17 file://0002-tests-do-not-run-target-executables.patch \
18 "
19SRC_URI:append:class-nativesdk = " \ 16SRC_URI:append:class-nativesdk = " \
20 file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \ 17 file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \
21 " 18 "
22SRC_URI[sha256sum] = "f311f8f3dad84699d0566d1d6f7ec943a9298b28f714cae3c931dfd57492d7eb" 19SRC_URI[sha256sum] = "629da4ab29900d0f7fcc36227073743119925fd711c99a1689bbf5c9b40c8e6f"
23 20
24UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/" 21UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"
25 22
26inherit lib_package 23inherit lib_package
27 24
28PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" 25PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
29PACKAGECONFIG:class-native ??= ""
30
31PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam" 26PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam"
32 27
33EXTRA_OEMAKE = " \ 28EXTRA_OEMAKE = " \
29 ${PACKAGECONFIG_CONFARGS} \
34 INDENT= \ 30 INDENT= \
35 lib='${baselib}' \ 31 lib='${baselib}' \
36 RAISE_SETFCAP=no \ 32 RAISE_SETFCAP=no \
@@ -38,23 +34,16 @@ EXTRA_OEMAKE = " \
38 USE_GPERF=yes \ 34 USE_GPERF=yes \
39" 35"
40 36
41EXTRA_OEMAKE:append:class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}"
42
43do_compile() { 37do_compile() {
44 unset CFLAGS BUILD_CFLAGS
45 oe_runmake \ 38 oe_runmake \
46 ${PACKAGECONFIG_CONFARGS} \
47 AR="${AR}" \ 39 AR="${AR}" \
48 CC="${CC}" \ 40 CC="${CC}" \
49 RANLIB="${RANLIB}" \ 41 RANLIB="${RANLIB}" \
50 OBJCOPY="${OBJCOPY}" \ 42 OBJCOPY="${OBJCOPY}"
51 COPTS="${CFLAGS}" \
52 BUILD_COPTS="${BUILD_CFLAGS}"
53} 43}
54 44
55do_install() { 45do_install() {
56 oe_runmake install \ 46 oe_runmake install \
57 ${PACKAGECONFIG_CONFARGS} \
58 DESTDIR="${D}" \ 47 DESTDIR="${D}" \
59 prefix="${prefix}" \ 48 prefix="${prefix}" \
60 SBINDIR="${sbindir}" 49 SBINDIR="${sbindir}"
@@ -71,9 +60,11 @@ do_install:append() {
71 fi 60 fi
72} 61}
73 62
74FILES:${PN}-dev += "${base_libdir}/*.so"
75
76# pam files 63# pam files
77FILES:${PN} += "${base_libdir}/security/*.so" 64FILES:${PN} += "${base_libdir}/security/*.so"
78 65
66# The license of the main package depends on whether PAM is enabled or not
67LICENSE:${PN} = "(BSD-3-Clause | GPL-2.0-only)${@bb.utils.contains('PACKAGECONFIG', 'pam', ' & (BSD-3-Clause | LGPL-2.0-or-later)', '', d)}"
68LICENSE:${PN}-dev = "(BSD-3-Clause | GPL-2.0-only)"
69
79BBCLASSEXTEND = "native nativesdk" 70BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch b/meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch
deleted file mode 100644
index 3c7572700d..0000000000
--- a/meta/recipes-support/libcheck/libcheck/not-echo-compiler-info-to-check_stdint.h.patch
+++ /dev/null
@@ -1,19 +0,0 @@
1Do not echo compiler info in a comment line to check_stdint.h which causes
2multilib install file conflict.
3
4Upstream-Status: Pending
5
6Signed-off-by: Kai Kang <kai.kang@windriver.com>
7
8diff --git a/m4/ax_create_stdint_h.m4 b/m4/ax_create_stdint_h.m4
9index 33a21f8..eacc37a 100644
10--- a/m4/ax_create_stdint_h.m4
11+++ b/m4/ax_create_stdint_h.m4
12@@ -272,7 +272,6 @@ echo "#ifndef" $_ac_stdint_h >$ac_stdint
13 echo "#define" $_ac_stdint_h "1" >>$ac_stdint
14 echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint
15 echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint
16-echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint
17 if test "_$ac_cv_header_stdint_t" != "_" ; then
18 echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint
19 echo "#include <stdint.h>" >>$ac_stdint
diff --git a/meta/recipes-support/libcheck/libcheck/subunit.patch b/meta/recipes-support/libcheck/libcheck/subunit.patch
new file mode 100644
index 0000000000..29c4b15601
--- /dev/null
+++ b/meta/recipes-support/libcheck/libcheck/subunit.patch
@@ -0,0 +1,43 @@
1From a6cd376b9ebcb4afc9ab06bce23b9bd909811ece Mon Sep 17 00:00:00 2001
2From: Christopher Obbard <christopher.obbard@linaro.org>
3Date: Thu, 13 Jun 2024 09:49:53 +0100
4Subject: [PATCH] Allow disabling autodetection of subunit library
5
6It can be useful to avoid linking to subunit when we are building the check
7library for the host, e.g. in a buildroot recipe, where the built check is
8linked into other applications which are used on the host to build images.
9
10These applications are built with the host's cross-compiler and can use
11the host's pkgconfig to determine if libraries are available. When check
12is linked against other libraries, it can fail this check for subunit.
13
14Allow disabling the autodetection of subunit with a configure flag
15-DENABLE_SUBUNIT_EXT=OFF
16
17Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
18
19Upstream-Status: Submitted [https://github.com/libcheck/check/pull/353/]
20Signed-off-by: Ross Burton <ross.burton@arm.com>
21---
22 CMakeLists.txt | 8 +++++++-
23 1 file changed, 7 insertions(+), 1 deletion(-)
24
25diff --git a/CMakeLists.txt b/CMakeLists.txt
26index 2ee580bc..6b36015b 100644
27--- a/CMakeLists.txt
28+++ b/CMakeLists.txt
29@@ -393,7 +393,13 @@ if (HAVE_LIBRT)
30 ADD_DEFINITIONS(-DHAVE_LIBRT=1)
31 endif (HAVE_LIBRT)
32
33-check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT)
34+# Allow disabling subunit
35+IF(ENABLE_SUBUNIT_EXT)
36+ check_library_exists(subunit subunit_test_start "" HAVE_SUBUNIT)
37+ELSE(ENABLE_SUBUNIT_EXT)
38+ set(HAVE_SUBUNIT, false)
39+ENDIF(ENABLE_SUBUNIT_EXT)
40+
41 if (HAVE_SUBUNIT)
42 set(SUBUNIT "subunit")
43 set(ENABLE_SUBUNIT 1)
diff --git a/meta/recipes-support/libcheck/libcheck_0.15.2.bb b/meta/recipes-support/libcheck/libcheck_0.15.2.bb
index 5ab67b8728..33f8f54888 100644
--- a/meta/recipes-support/libcheck/libcheck_0.15.2.bb
+++ b/meta/recipes-support/libcheck/libcheck_0.15.2.bb
@@ -12,21 +12,23 @@ LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1"
12 12
13SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/check-${PV}.tar.gz \ 13SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/check-${PV}.tar.gz \
14 file://automake-output.patch \ 14 file://automake-output.patch \
15 file://not-echo-compiler-info-to-check_stdint.h.patch" 15 file://subunit.patch"
16SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a" 16SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a"
17GITHUB_BASE_URI = "https://github.com/libcheck/check/releases/" 17GITHUB_BASE_URI = "https://github.com/libcheck/check/releases/"
18 18
19S = "${WORKDIR}/check-${PV}" 19S = "${UNPACKDIR}/check-${PV}"
20 20
21inherit autotools pkgconfig texinfo github-releases 21inherit cmake pkgconfig texinfo github-releases
22
23CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk"
24 22
25RREPLACES:${PN} = "check (<= 0.9.5)" 23RREPLACES:${PN} = "check (<= 0.9.5)"
26 24
25EXTRA_OECMAKE:append:class-target = " -DAWK_PATH=${bindir}/awk"
26EXTRA_OECMAKE = "-DENABLE_SUBUNIT_EXT=OFF"
27
27do_install:append:class-native() { 28do_install:append:class-native() {
28 create_cmdline_shebang_wrapper ${D}${bindir}/checkmk 29 create_cmdline_shebang_wrapper ${D}${bindir}/checkmk
29} 30}
31
30BBCLASSEXTEND = "native nativesdk" 32BBCLASSEXTEND = "native nativesdk"
31 33
32PACKAGES =+ "checkmk" 34PACKAGES =+ "checkmk"
diff --git a/meta/recipes-support/libdaemon/libdaemon_0.14.bb b/meta/recipes-support/libdaemon/libdaemon_0.14.bb
index 089f19d1cd..a0378802c9 100644
--- a/meta/recipes-support/libdaemon/libdaemon_0.14.bb
+++ b/meta/recipes-support/libdaemon/libdaemon_0.14.bb
@@ -13,7 +13,6 @@ SRC_URI = "http://0pointer.de/lennart/projects/libdaemon/libdaemon-${PV}.tar.gz
13 file://fix-includes.patch \ 13 file://fix-includes.patch \
14 " 14 "
15 15
16SRC_URI[md5sum] = "509dc27107c21bcd9fbf2f95f5669563"
17SRC_URI[sha256sum] = "fd23eb5f6f986dcc7e708307355ba3289abe03cc381fc47a80bca4a50aa6b834" 16SRC_URI[sha256sum] = "fd23eb5f6f986dcc7e708307355ba3289abe03cc381fc47a80bca4a50aa6b834"
18 17
19inherit autotools pkgconfig 18inherit autotools pkgconfig
diff --git a/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb b/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb
new file mode 100644
index 0000000000..812a30495e
--- /dev/null
+++ b/meta/recipes-support/libdisplay-info/libdisplay-info_0.2.0.bb
@@ -0,0 +1,14 @@
1SUMMARY = "EDID and DisplayID library"
2DESCRIPTION = "The goal of this library is to provide a set of high-level, \
3easy-to-use, and opinionated functions, as well as low-level functions for \
4accessing detailed information, prioritizing simplicity and correctness over \
5performance and resource usage, while being well-tested and fuzzed."
6HOMEPAGE = "https://gitlab.freedesktop.org/emersion/libdisplay-info"
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=e4426409957080ee0352128354cea2de"
9DEPENDS = "hwdata-native"
10
11SRC_URI = "git://gitlab.freedesktop.org/emersion/libdisplay-info.git;branch=main;protocol=https"
12SRCREV = "66b802d05b374cd8f388dc6ad1e7ae4f08cb3300"
13
14inherit meson pkgconfig lib_package
diff --git a/meta/recipes-support/libevdev/libevdev_1.13.1.bb b/meta/recipes-support/libevdev/libevdev_1.13.4.bb
index 85cfd78507..3ff64bd04b 100644
--- a/meta/recipes-support/libevdev/libevdev_1.13.1.bb
+++ b/meta/recipes-support/libevdev/libevdev_1.13.4.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=80c550b3197bcb8da7d7557ebcc3fc46 \
10 " 10 "
11 11
12SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz" 12SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz"
13SRC_URI[sha256sum] = "06a77bf2ac5c993305882bc1641017f5bec1592d6d1b64787bad492ab34f2f36" 13SRC_URI[sha256sum] = "f00ab8d42ad8b905296fab67e13b871f1a424839331516642100f82ad88127cd"
14 14
15inherit autotools pkgconfig 15inherit autotools pkgconfig
16 16
diff --git a/meta/recipes-support/libevent/libevent_2.1.12.bb b/meta/recipes-support/libevent/libevent_2.1.12.bb
index 25388fb4d7..2fadf10943 100644
--- a/meta/recipes-support/libevent/libevent_2.1.12.bb
+++ b/meta/recipes-support/libevent/libevent_2.1.12.bb
@@ -23,7 +23,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/release-${PV}-stable/${BP}-stable.tar.gz
23SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb" 23SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb"
24UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>.+)-stable" 24UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>.+)-stable"
25 25
26S = "${WORKDIR}/${BPN}-${PV}-stable" 26S = "${UNPACKDIR}/${BPN}-${PV}-stable"
27 27
28PACKAGECONFIG ??= "" 28PACKAGECONFIG ??= ""
29PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" 29PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
diff --git a/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch b/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch
index 505aa07330..26ab7f657f 100644
--- a/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch
+++ b/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch
@@ -1,4 +1,4 @@
1From 1ee7217c8ae724d793f9a9876c3608057a2ccbf8 Mon Sep 17 00:00:00 2001 1From ea0110e5def8eaf2567193323601f06ff892ce15 Mon Sep 17 00:00:00 2001
2From: Julien Stephan <jstephan@baylibre.com> 2From: Julien Stephan <jstephan@baylibre.com>
3Date: Tue, 11 Jul 2023 16:07:54 +0200 3Date: Tue, 11 Jul 2023 16:07:54 +0200
4Subject: [PATCH] Add serial-tests config needed by ptest 4Subject: [PATCH] Add serial-tests config needed by ptest
@@ -13,10 +13,10 @@ Signed-off-by: Julien Stephan <jstephan@baylibre.com>
13 1 file changed, 1 insertion(+) 13 1 file changed, 1 insertion(+)
14 14
15diff --git a/configure.ac b/configure.ac 15diff --git a/configure.ac b/configure.ac
16index cd48047..5413907 100644 16index 9e483c9..561b61c 100644
17--- a/configure.ac 17--- a/configure.ac
18+++ b/configure.ac 18+++ b/configure.ac
19@@ -16,6 +16,7 @@ AM_INIT_AUTOMAKE([ 19@@ -21,6 +21,7 @@ AM_INIT_AUTOMAKE([
20 dist-zip 20 dist-zip
21 check-news 21 check-news
22 subdir-objects 22 subdir-objects
diff --git a/meta/recipes-support/libexif/libexif_0.6.24.bb b/meta/recipes-support/libexif/libexif_0.6.25.bb
index b407ee52de..59c22753d0 100644
--- a/meta/recipes-support/libexif/libexif_0.6.24.bb
+++ b/meta/recipes-support/libexif/libexif_0.6.25.bb
@@ -12,7 +12,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libexif-${PV}.tar.bz2 \
12 file://run-ptest \ 12 file://run-ptest \
13 " 13 "
14 14
15SRC_URI[sha256sum] = "d47564c433b733d83b6704c70477e0a4067811d184ec565258ac563d8223f6ae" 15SRC_URI[sha256sum] = "7c9eba99aed3e6594d8c3e85861f1c6aaf450c218621528bc989d3b3e7a26307"
16 16
17inherit autotools gettext github-releases ptest 17inherit autotools gettext github-releases ptest
18 18
diff --git a/meta/recipes-support/libffi/libffi/not-win32.patch b/meta/recipes-support/libffi/libffi/not-win32.patch
index f4ed839ed8..26263731f3 100644
--- a/meta/recipes-support/libffi/libffi/not-win32.patch
+++ b/meta/recipes-support/libffi/libffi/not-win32.patch
@@ -1,4 +1,4 @@
1From be9d4cc110c159812699780348686da371296b94 Mon Sep 17 00:00:00 2001 1From 28d0fd6b73163fc2dbc10c7dc838a8222671f88c Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com> 2From: Ross Burton <ross.burton@intel.com>
3Date: Thu, 4 Feb 2016 16:22:50 +0000 3Date: Thu, 4 Feb 2016 16:22:50 +0000
4Subject: [PATCH] libffi: ensure sysroot paths are not in libffi.pc 4Subject: [PATCH] libffi: ensure sysroot paths are not in libffi.pc
@@ -20,10 +20,10 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
20 1 file changed, 1 insertion(+), 1 deletion(-) 20 1 file changed, 1 insertion(+), 1 deletion(-)
21 21
22diff --git a/configure.ac b/configure.ac 22diff --git a/configure.ac b/configure.ac
23index 816bfd6..e37c5a8 100644 23index 258107d..ef1a285 100644
24--- a/configure.ac 24--- a/configure.ac
25+++ b/configure.ac 25+++ b/configure.ac
26@@ -401,7 +401,7 @@ AC_ARG_ENABLE(multi-os-directory, 26@@ -403,7 +403,7 @@ AC_ARG_ENABLE(multi-os-directory,
27 27
28 # These variables are only ever used when we cross-build to X86_WIN32. 28 # These variables are only ever used when we cross-build to X86_WIN32.
29 # And we only support this with GCC, so... 29 # And we only support this with GCC, so...
diff --git a/meta/recipes-support/libffi/libffi_3.4.6.bb b/meta/recipes-support/libffi/libffi_3.5.1.bb
index a6857a3981..be16008e0f 100644
--- a/meta/recipes-support/libffi/libffi_3.4.6.bb
+++ b/meta/recipes-support/libffi/libffi_3.5.1.bb
@@ -8,12 +8,12 @@ library really only provides the lowest, machine dependent layer of a fully feat
8A layer must exist above `libffi' that handles type conversions for values passed between the two languages." 8A layer must exist above `libffi' that handles type conversions for values passed between the two languages."
9 9
10LICENSE = "MIT" 10LICENSE = "MIT"
11LIC_FILES_CHKSUM = "file://LICENSE;md5=1db54c9fd307a12218766c3c7f650ca7" 11LIC_FILES_CHKSUM = "file://LICENSE;md5=ce4763670c5b7756000561f9af1ab178"
12 12
13SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BPN}-${PV}.tar.gz \ 13SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BPN}-${PV}.tar.gz \
14 file://not-win32.patch \ 14 file://not-win32.patch \
15 " 15 "
16SRC_URI[sha256sum] = "b0dea9df23c863a7a50e825440f3ebffabd65df1497108e5d437747843895a4e" 16SRC_URI[sha256sum] = "f99eb68a67c7d54866b7706af245e87ba060d419a062474b456d3bc8d4abdbd1"
17 17
18EXTRA_OECONF += "--disable-builddir --disable-exec-static-tramp" 18EXTRA_OECONF += "--disable-builddir --disable-exec-static-tramp"
19EXTRA_OECONF:class-native += "--with-gcc-arch=generic" 19EXTRA_OECONF:class-native += "--with-gcc-arch=generic"
diff --git a/meta/recipes-support/libfm/libfm-extra/0001-nls.m4-Take-it-from-gettext-0.15.patch b/meta/recipes-support/libfm/libfm-extra/0001-nls.m4-Take-it-from-gettext-0.15.patch
deleted file mode 100644
index 69a51d5662..0000000000
--- a/meta/recipes-support/libfm/libfm-extra/0001-nls.m4-Take-it-from-gettext-0.15.patch
+++ /dev/null
@@ -1,54 +0,0 @@
1From c320799c941d42a9b7e351805359694ea3b36d2d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 5 Apr 2015 09:08:38 -0700
4Subject: [PATCH] nls.m4: Take it from gettext-0.15
5
6It otherwise expects gettext to provide it. Lets go independent
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9
10Upstream-Status: Pending
11---
12 m4/nls.m4 | 30 ++++++++++++++++++++++++++++++
13 1 file changed, 30 insertions(+)
14 create mode 100644 m4/nls.m4
15
16diff --git a/m4/nls.m4 b/m4/nls.m4
17new file mode 100644
18index 0000000..2c8fe69
19--- /dev/null
20+++ b/m4/nls.m4
21@@ -0,0 +1,30 @@
22+dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
23+dnl This file is free software; the Free Software Foundation
24+dnl gives unlimited permission to copy and/or distribute it,
25+dnl with or without modifications, as long as this notice is preserved.
26+dnl
27+dnl This file can can be used in projects which are not available under
28+dnl the GNU General Public License or the GNU Library General Public
29+dnl License but which still want to provide support for the GNU gettext
30+dnl functionality.
31+dnl Please note that the actual code of the GNU gettext library is covered
32+dnl by the GNU Library General Public License, and the rest of the GNU
33+dnl gettext package package is covered by the GNU General Public License.
34+dnl They are not in the public domain.
35+
36+dnl Authors:
37+dnl Ulrich Drepper drepper@cygnus.com, 1995-2000.
38+dnl Bruno Haible haible@clisp.cons.org, 2000-2003.
39+
40+AC_PREREQ(2.50)
41+
42+AC_DEFUN([AM_NLS],
43+[
44+AC_MSG_CHECKING([whether NLS is requested])
45+dnl Default is enabled NLS
46+AC_ARG_ENABLE(nls,
47+[ --disable-nls do not use Native Language Support],
48+USE_NLS=$enableval, USE_NLS=yes)
49+AC_MSG_RESULT($USE_NLS)
50+AC_SUBST(USE_NLS)
51+])
52--
532.1.4
54
diff --git a/meta/recipes-support/libfm/libfm-extra_1.3.2.bb b/meta/recipes-support/libfm/libfm-extra_1.3.2.bb
index 79dd1d92dc..5bf2f0f502 100644
--- a/meta/recipes-support/libfm/libfm-extra_1.3.2.bb
+++ b/meta/recipes-support/libfm/libfm-extra_1.3.2.bb
@@ -8,16 +8,16 @@ LIC_FILES_CHKSUM = "file://src/fm-extra.h;beginline=8;endline=21;md5=ef1f84da64b
8SECTION = "x11/libs" 8SECTION = "x11/libs"
9DEPENDS = "glib-2.0-native glib-2.0 intltool-native" 9DEPENDS = "glib-2.0-native glib-2.0 intltool-native"
10 10
11SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz \ 11SOURCEFORGE_PROJECT = "pcmanfm"
12 file://0001-nls.m4-Take-it-from-gettext-0.15.patch \ 12SRC_URI = "${SOURCEFORGE_MIRROR}/${SOURCEFORGE_PROJECT}/libfm-${PV}.tar.xz \
13 " 13 "
14 14
15SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5" 15SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5"
16 16
17S = "${WORKDIR}/libfm-${PV}" 17S = "${UNPACKDIR}/libfm-${PV}"
18 18
19EXTRA_OECONF = "--with-extra-only --with-gtk=no" 19EXTRA_OECONF = "--with-extra-only --with-gtk=no"
20 20
21inherit autotools pkgconfig gtk-doc gettext 21inherit autotools pkgconfig gtk-doc gettext sourceforge-releases
22 22
23do_configure[dirs] =+ "${S}/m4" 23do_configure[dirs] =+ "${S}/m4"
diff --git a/meta/recipes-support/libfm/libfm_1.3.2.bb b/meta/recipes-support/libfm/libfm_1.3.2.bb
index 057c737029..ab29ce4b40 100644
--- a/meta/recipes-support/libfm/libfm_1.3.2.bb
+++ b/meta/recipes-support/libfm/libfm_1.3.2.bb
@@ -9,18 +9,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b \
9 file://src/base/fm-config.h;beginline=10;endline=23;md5=ef1f84da64b3c01cca447212f7ef6007 \ 9 file://src/base/fm-config.h;beginline=10;endline=23;md5=ef1f84da64b3c01cca447212f7ef6007 \
10 file://src/fm-gtk.h;beginline=6;endline=19;md5=646baa4955c04fe768f2ca27b92ac8dd" 10 file://src/fm-gtk.h;beginline=6;endline=19;md5=646baa4955c04fe768f2ca27b92ac8dd"
11 11
12
13SECTION = "x11/libs" 12SECTION = "x11/libs"
14DEPENDS = "glib-2.0 glib-2.0-native pango gtk+3 menu-cache intltool-native libexif libfm-extra" 13DEPENDS = "glib-2.0 glib-2.0-native pango gtk+3 menu-cache intltool-native libexif libfm-extra"
15 14
16SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz \ 15SOURCEFORGE_PROJECT = "pcmanfm"
16SRC_URI = "${SOURCEFORGE_MIRROR}/${SOURCEFORGE_PROJECT}/libfm-${PV}.tar.xz \
17 file://0001-Correctly-check-the-stamp-file-that-indicates-if-we-.patch \ 17 file://0001-Correctly-check-the-stamp-file-that-indicates-if-we-.patch \
18 file://0001-Do-not-add-library-path-to-avoid-host-contamination.patch \ 18 file://0001-Do-not-add-library-path-to-avoid-host-contamination.patch \
19 " 19 "
20 20
21SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5" 21SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5"
22 22
23inherit autotools pkgconfig gtk-doc gettext features_check mime mime-xdg 23inherit autotools pkgconfig gtk-doc gettext features_check mime mime-xdg sourceforge-releases
24ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 24ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
25 25
26EXTRA_OECONF = "--with-gtk=3" 26EXTRA_OECONF = "--with-gtk=3"
@@ -53,3 +53,7 @@ do_install:append () {
53 rm -f ${D}${libdir}/libfm-extra.a 53 rm -f ${D}${libdir}/libfm-extra.a
54 rm -f ${D}${libdir}/libfm-extra.la 54 rm -f ${D}${libdir}/libfm-extra.la
55} 55}
56
57# http://errors.yoctoproject.org/Errors/Details/766924/
58# libfm-1.3.2/src/actions/action.c:2050:25: error: assignment to 'gchar **' {aka 'char **'} from incompatible pointer type 'const gchar * const*' {aka 'const char * const*'} [-Wincompatible-pointer-types]
59CFLAGS += "-Wno-error=incompatible-pointer-types"
diff --git a/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch b/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
index cbfa30f0ad..7b840644d4 100644
--- a/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
+++ b/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
@@ -1,4 +1,4 @@
1From bcfd89abdb5110b93314297120412d4c7f2da313 Mon Sep 17 00:00:00 2001 1From fcb53181b18c00083a8b08625db74829cfd6b4b2 Mon Sep 17 00:00:00 2001
2From: Trevor Gamblin <trevor.gamblin@windriver.com> 2From: Trevor Gamblin <trevor.gamblin@windriver.com>
3Date: Tue, 29 Oct 2019 14:08:32 -0400 3Date: Tue, 29 Oct 2019 14:08:32 -0400
4Subject: [PATCH] libgcrypt: fix m4 file for oe-core 4Subject: [PATCH] libgcrypt: fix m4 file for oe-core
@@ -11,19 +11,18 @@ settings.
11Upstream-Status: Inappropriate [oe-specific] 11Upstream-Status: Inappropriate [oe-specific]
12 12
13Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> 13Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
14
15--- 14---
16 src/libgcrypt.m4 | 90 +++--------------------------------------------- 15 src/libgcrypt.m4 | 90 +++---------------------------------------------
17 1 file changed, 4 insertions(+), 86 deletions(-) 16 1 file changed, 4 insertions(+), 86 deletions(-)
18 17
19diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4 18diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4
20index cd4249e..e53a36f 100644 19index 353df81..b195e22 100644
21--- a/src/libgcrypt.m4 20--- a/src/libgcrypt.m4
22+++ b/src/libgcrypt.m4 21+++ b/src/libgcrypt.m4
23@@ -29,41 +29,6 @@ dnl is added to the gpg_config_script_warn variable. 22@@ -116,41 +116,6 @@ dnl
24 dnl
25 AC_DEFUN([AM_PATH_LIBGCRYPT], 23 AC_DEFUN([AM_PATH_LIBGCRYPT],
26 [ AC_REQUIRE([AC_CANONICAL_HOST]) 24 [ AC_REQUIRE([AC_CANONICAL_HOST])dnl
25 AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
27- AC_ARG_WITH(libgcrypt-prefix, 26- AC_ARG_WITH(libgcrypt-prefix,
28- AS_HELP_STRING([--with-libgcrypt-prefix=PFX], 27- AS_HELP_STRING([--with-libgcrypt-prefix=PFX],
29- [prefix where LIBGCRYPT is installed (optional)]), 28- [prefix where LIBGCRYPT is installed (optional)]),
@@ -62,7 +61,7 @@ index cd4249e..e53a36f 100644
62 61
63 tmp=ifelse([$1], ,1:1.2.0,$1) 62 tmp=ifelse([$1], ,1:1.2.0,$1)
64 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 63 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
65@@ -74,56 +39,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], 64@@ -161,56 +126,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
66 min_libgcrypt_version="$tmp" 65 min_libgcrypt_version="$tmp"
67 fi 66 fi
68 67
@@ -122,7 +121,7 @@ index cd4249e..e53a36f 100644
122 if test "$tmp" -gt 0 ; then 121 if test "$tmp" -gt 0 ; then
123 AC_MSG_CHECKING([LIBGCRYPT API version]) 122 AC_MSG_CHECKING([LIBGCRYPT API version])
124 if test "$req_libgcrypt_api" -eq "$tmp" ; then 123 if test "$req_libgcrypt_api" -eq "$tmp" ; then
125@@ -136,11 +58,9 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], 124@@ -223,11 +145,9 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
126 fi 125 fi
127 fi 126 fi
128 if test $ok = yes; then 127 if test $ok = yes; then
@@ -135,7 +134,7 @@ index cd4249e..e53a36f 100644
135 else 134 else
136 libgcrypt_config_host=`$LIBGCRYPT_CONFIG --variable=host 2>/dev/null || echo none` 135 libgcrypt_config_host=`$LIBGCRYPT_CONFIG --variable=host 2>/dev/null || echo none`
137 fi 136 fi
138@@ -158,8 +78,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT], 137@@ -245,8 +165,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
139 fi 138 fi
140 fi 139 fi
141 else 140 else
diff --git a/meta/recipes-support/libgcrypt/files/0001-tests-Fix-link-errors-for-t-thread-local.patch b/meta/recipes-support/libgcrypt/files/0001-tests-Fix-link-errors-for-t-thread-local.patch
new file mode 100644
index 0000000000..5ebc3831d4
--- /dev/null
+++ b/meta/recipes-support/libgcrypt/files/0001-tests-Fix-link-errors-for-t-thread-local.patch
@@ -0,0 +1,34 @@
1From 746dc1c3837546c1085102e546a83da8d1c773e1 Mon Sep 17 00:00:00 2001
2From: Collin Funk <collin.funk1@gmail.com>
3Date: Thu, 1 May 2025 22:20:58 -0700
4Subject: [PATCH] tests: Fix link errors for t-thread-local.
5
6On platforms where pthread_create is not in libc t-thread-local fails to
7link. Issue found on NetBSD 10.0.
8* tests/Makefile.am (t_thread_local_LDADD): Add $(standard_ldadd),
9$(GPG_ERROR_MT_LIBS), and @LDADD_FOR_TESTS_KLUDGE@.
10(t_thread_local_CFLAGS): Add $(GPG_ERROR_MT_CFLAGS).
11
12--
13
14Upstream-Status: Backport [793eda7b258a562757b51c96044b103b638f1a63]
15GnuPG-bug-id: 7634
16Signed-off-by: Collin Funk <collin.funk1@gmail.com>
17Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
18---
19 tests/Makefile.am | 2 ++
20 1 file changed, 2 insertions(+)
21
22diff --git a/tests/Makefile.am b/tests/Makefile.am
23index 9a9e1c2c264a..b80f266f97c2 100644
24--- a/tests/Makefile.am
25+++ b/tests/Makefile.am
26@@ -94,6 +94,8 @@ t_secmem_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@
27 testapi_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@
28 t_lock_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@
29 t_lock_CFLAGS = $(GPG_ERROR_MT_CFLAGS) -lpthread
30+t_thread_local_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@
31+t_thread_local_CFLAGS = $(GPG_ERROR_MT_CFLAGS) -lpthread
32 testdrv_LDADD = $(LDADD_FOR_TESTS_KLUDGE)
33
34 # Build a version of the test driver for the build platform.
diff --git a/meta/recipes-support/libgcrypt/files/0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch b/meta/recipes-support/libgcrypt/files/0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch
deleted file mode 100644
index cf9ebfb3e6..0000000000
--- a/meta/recipes-support/libgcrypt/files/0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 0f66e796a8522e1043dda03b88d5f6feae839d16 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 16 Aug 2017 10:44:41 +0800
4Subject: [PATCH] libgcrypt: fix building error with '-O2' in sysroot path
5
6Upstream-Status: Pending
7
8Characters like '-O2' or '-Ofast' will be replaced by '-O1' when
9compiling cipher.
10If we are cross compiling libgcrypt and sysroot contains such
11characters, we would
12get compile errors because the sysroot path has been modified.
13
14Fix this by adding blank spaces before and after the original matching
15pattern in the
16sed command.
17
18Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
19
20Rebase to 1.8.0
21Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
22
23---
24 cipher/Makefile.am | 2 +-
25 1 file changed, 1 insertion(+), 1 deletion(-)
26
27diff --git a/cipher/Makefile.am b/cipher/Makefile.am
28index c3d642b..88c883a 100644
29--- a/cipher/Makefile.am
30+++ b/cipher/Makefile.am
31@@ -153,7 +153,7 @@ gost-s-box: gost-s-box.c
32
33
34 if ENABLE_O_FLAG_MUNGING
35-o_flag_munging = sed -e 's/-O\([2-9sgz][2-9sgz]*\)/-O1/' -e 's/-Ofast/-O1/g'
36+o_flag_munging = sed -e 's/ -O\([2-9sgz][2-9sgz]*\) / -O1 /' -e 's/ -Ofast / -O1 /g'
37 else
38 o_flag_munging = cat
39 endif
diff --git a/meta/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch b/meta/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch
index 4233fa7877..ccf4e18910 100644
--- a/meta/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch
+++ b/meta/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch
@@ -1,4 +1,4 @@
1From 9182bc2dc676858a823c477d8f45a578b8c4f69f Mon Sep 17 00:00:00 2001 1From c7a99e7a15f1f703ac90fc2a16b2c2115a66a996 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Sun, 12 Jun 2016 04:44:29 -0400 3Date: Sun, 12 Jun 2016 04:44:29 -0400
4Subject: [PATCH] tests/Makefile.am: fix undefined reference to 4Subject: [PATCH] tests/Makefile.am: fix undefined reference to
@@ -9,16 +9,15 @@ Add missing '-lpthread' to CFLAGS
9Upstream-Status: Pending 9Upstream-Status: Pending
10 10
11Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 11Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
12
13--- 12---
14 tests/Makefile.am | 4 ++-- 13 tests/Makefile.am | 4 ++--
15 1 file changed, 2 insertions(+), 2 deletions(-) 14 1 file changed, 2 insertions(+), 2 deletions(-)
16 15
17diff --git a/tests/Makefile.am b/tests/Makefile.am 16diff --git a/tests/Makefile.am b/tests/Makefile.am
18index e6953fd..f47e1d3 100644 17index 3170a58..9a9e1c2 100644
19--- a/tests/Makefile.am 18--- a/tests/Makefile.am
20+++ b/tests/Makefile.am 19+++ b/tests/Makefile.am
21@@ -76,7 +76,7 @@ t_mpi_bit_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ 20@@ -93,7 +93,7 @@ t_mpi_bit_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@
22 t_secmem_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ 21 t_secmem_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@
23 testapi_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@ 22 testapi_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@
24 t_lock_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@ 23 t_lock_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@
@@ -27,7 +26,7 @@ index e6953fd..f47e1d3 100644
27 testdrv_LDADD = $(LDADD_FOR_TESTS_KLUDGE) 26 testdrv_LDADD = $(LDADD_FOR_TESTS_KLUDGE)
28 27
29 # Build a version of the test driver for the build platform. 28 # Build a version of the test driver for the build platform.
30@@ -95,7 +95,7 @@ else 29@@ -112,7 +112,7 @@ else
31 xtestsuite_libs = ../src/.libs/libgcrypt.so* 30 xtestsuite_libs = ../src/.libs/libgcrypt.so*
32 xtestsuite_driver = testdrv 31 xtestsuite_driver = testdrv
33 t_kdf_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@ 32 t_kdf_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@
diff --git a/meta/recipes-support/libgcrypt/files/no-bench-slope.patch b/meta/recipes-support/libgcrypt/files/no-bench-slope.patch
index 8de3c6713b..44aac1913e 100644
--- a/meta/recipes-support/libgcrypt/files/no-bench-slope.patch
+++ b/meta/recipes-support/libgcrypt/files/no-bench-slope.patch
@@ -1,3 +1,8 @@
1From eb3a5bc4d5a212da64c0f9396c7f31f83aa6f36c Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@arm.com>
3Date: Fri, 9 Sep 2022 11:13:37 +0100
4Subject: [PATCH] libgcrypt: disable bench-slope test case
5
1The bench-slope test appears to be aborting fairly frequently, which causes 6The bench-slope test appears to be aborting fairly frequently, which causes
2failures on the autobuilder. 7failures on the autobuilder.
3 8
@@ -5,16 +10,19 @@ Until this has been root-caused, disable the test.
5 10
6Upstream-Status: Inappropriate 11Upstream-Status: Inappropriate
7Signed-off-by: Ross Burton <ross.burton@arm.com> 12Signed-off-by: Ross Burton <ross.burton@arm.com>
13---
14 tests/testdrv.c | 1 -
15 1 file changed, 1 deletion(-)
8 16
9diff --git a/tests/testdrv.c b/tests/testdrv.c 17diff --git a/tests/testdrv.c b/tests/testdrv.c
10index 0ccde326..d3455186 100644 18index 634b718..1e9dddb 100644
11--- a/tests/testdrv.c 19--- a/tests/testdrv.c
12+++ b/tests/testdrv.c 20+++ b/tests/testdrv.c
13@@ -77,7 +77,6 @@ static struct { 21@@ -76,7 +76,6 @@ static struct {
14 { "t-x448" }, 22 { "t-x448" },
15 { "t-ed448" }, 23 { "t-ed448" },
16 { "benchmark" }, 24 { "benchmark" },
17- { "bench-slope" }, 25- { "bench-slope" },
18 { "hashtest-256g", "hashtest", "--gigs 256 SHA1 SHA256 SHA512 SM3", 26 { "hashtest-6g", "hashtest", "--hugeblock --gigs 6 SHA1 SHA256 SHA512 "
19 LONG_RUNNING }, 27 "SHA3-512 SM3 BLAKE2S_256 "
20 { NULL } 28 "BLAKE2B_512 CRC32 "
diff --git a/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch b/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch
index b9a607863d..98874ce12a 100644
--- a/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch
+++ b/meta/recipes-support/libgcrypt/files/no-native-gpg-error.patch
@@ -1,11 +1,19 @@
1From ede03b847038afc294e206ca345d12d75bbba844 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@arm.com>
3Date: Fri, 26 Aug 2022 15:23:37 +0100
4Subject: [PATCH] libgcrypt: rewrite ptest
5
1Don't depend on a native libgpg-error to build the test driver, as it's 6Don't depend on a native libgpg-error to build the test driver, as it's
2an optional dependency for some C annotations. 7an optional dependency for some C annotations.
3 8
4Upstream-Status: Inappropriate 9Upstream-Status: Inappropriate
5Signed-off-by: Ross Burton <ross.burton@arm.com> 10Signed-off-by: Ross Burton <ross.burton@arm.com>
11---
12 tests/testdrv.c | 1 -
13 1 file changed, 1 deletion(-)
6 14
7diff --git a/tests/testdrv.c b/tests/testdrv.c 15diff --git a/tests/testdrv.c b/tests/testdrv.c
8index 0ccde326..6d6abd57 100644 16index bfca4c2..634b718 100644
9--- a/tests/testdrv.c 17--- a/tests/testdrv.c
10+++ b/tests/testdrv.c 18+++ b/tests/testdrv.c
11@@ -32,7 +32,6 @@ 19@@ -32,7 +32,6 @@
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.11.1.bb
index 5a76201ab5..14cbe53647 100644
--- a/meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb
+++ b/meta/recipes-support/libgcrypt/libgcrypt_1.11.1.bb
@@ -6,14 +6,13 @@ HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/"
6BUGTRACKER = "https://bugs.g10code.com/gnupg/index" 6BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
7SECTION = "libs" 7SECTION = "libs"
8 8
9# helper program gcryptrnd and getrandom are under GPL, rest LGPL 9LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & BSD-3-Clause"
10LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" 10LICENSE:${PN} = "LGPL-2.1-or-later & BSD-3-Clause"
11LICENSE:${PN} = "LGPL-2.1-or-later"
12LICENSE:${PN}-dev = "GPL-2.0-or-later & LGPL-2.1-or-later" 11LICENSE:${PN}-dev = "GPL-2.0-or-later & LGPL-2.1-or-later"
13 12
14LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ 13LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
15 file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \ 14 file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
16 file://LICENSES;md5=ef545b6cc717747072616519a1256d69 \ 15 file://LICENSES;md5=034b4e369944ad4b52a68368f1cf98b8 \
17 " 16 "
18 17
19DEPENDS = "libgpg-error" 18DEPENDS = "libgpg-error"
@@ -21,18 +20,20 @@ DEPENDS = "libgpg-error"
21UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" 20UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
22SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ 21SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \
23 file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \ 22 file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \
24 file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \
25 file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ 23 file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \
24 file://0001-tests-Fix-link-errors-for-t-thread-local.patch \
26 file://no-native-gpg-error.patch \ 25 file://no-native-gpg-error.patch \
27 file://no-bench-slope.patch \ 26 file://no-bench-slope.patch \
28 file://run-ptest \ 27 file://run-ptest \
29 " 28 "
30SRC_URI[sha256sum] = "8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa" 29SRC_URI[sha256sum] = "24e91c9123a46c54e8371f3a3a2502f1198f2893fbfbf59af95bc1c21499b00e"
31 30
32BINCONFIG = "${bindir}/libgcrypt-config" 31BINCONFIG = "${bindir}/libgcrypt-config"
33 32
34inherit autotools texinfo binconfig-disabled pkgconfig ptest 33inherit autotools texinfo binconfig-disabled pkgconfig ptest
35 34
35require recipes-support/gnupg/drop-unknown-suffix.inc
36
36EXTRA_OECONF = "--disable-asm" 37EXTRA_OECONF = "--disable-asm"
37EXTRA_OEMAKE:class-target = "LIBTOOLFLAGS='--tag=CC'" 38EXTRA_OEMAKE:class-target = "LIBTOOLFLAGS='--tag=CC'"
38 39
diff --git a/meta/recipes-support/libgit2/libgit2/0001-src-libgit2-CMakeLists.txt-install-cmake-files-into-.patch b/meta/recipes-support/libgit2/libgit2/0001-src-libgit2-CMakeLists.txt-install-cmake-files-into-.patch
new file mode 100644
index 0000000000..ae48524e0d
--- /dev/null
+++ b/meta/recipes-support/libgit2/libgit2/0001-src-libgit2-CMakeLists.txt-install-cmake-files-into-.patch
@@ -0,0 +1,32 @@
1From 8ca35649c33d0d2fcdcd573ce6a9edd91c77e4da Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de>
3Date: Tue, 7 Jan 2025 18:56:19 +0100
4Subject: [PATCH] src/libgit2/CMakeLists.txt: install cmake files into
5 configured libdir
6
7libdir can be something else than /usr/lib, e.g. /usr/lib64 or similar.
8
9Upstream-Status: Submitted [https://github.com/libgit2/libgit2/pull/7004]
10Signed-off-by: Alexander Kanavin <alex@linutronix.de>
11---
12 src/libgit2/CMakeLists.txt | 4 ++--
13 1 file changed, 2 insertions(+), 2 deletions(-)
14
15diff --git a/src/libgit2/CMakeLists.txt b/src/libgit2/CMakeLists.txt
16index a7d3c7ca4..16b3a23d9 100644
17--- a/src/libgit2/CMakeLists.txt
18+++ b/src/libgit2/CMakeLists.txt
19@@ -119,11 +119,11 @@ configure_file(config.cmake.in
20 install(FILES
21 "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
22 "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
23- DESTINATION "lib/cmake/${PROJECT_NAME}")
24+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
25 install(
26 EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
27 NAMESPACE "${PROJECT_NAME}::"
28- DESTINATION "lib/cmake/${PROJECT_NAME}")
29+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
30
31 # Install
32
diff --git a/meta/recipes-support/libgit2/libgit2_1.7.2.bb b/meta/recipes-support/libgit2/libgit2_1.9.0.bb
index d1629c0c0b..66ec62f17a 100644
--- a/meta/recipes-support/libgit2/libgit2_1.7.2.bb
+++ b/meta/recipes-support/libgit2/libgit2_1.9.0.bb
@@ -1,14 +1,14 @@
1SUMMARY = "the Git linkable library" 1SUMMARY = "the Git linkable library"
2HOMEPAGE = "http://libgit2.github.com/" 2HOMEPAGE = "http://libgit2.github.com/"
3LICENSE = "GPL-2.0-with-GCC-exception & MIT & OpenSSL & BSD-3-Clause & Zlib & ISC & LGPL-2.1-or-later & CC0-1.0 & BSD-2-Clause" 3LICENSE = "GPL-2.0-with-GCC-exception & MIT & OpenSSL & BSD-3-Clause & Zlib & ISC & LGPL-2.1-or-later & CC0-1.0 & BSD-2-Clause"
4LIC_FILES_CHKSUM = "file://COPYING;md5=5bdf47bbc9a39dc6ce076d59e322dc17" 4LIC_FILES_CHKSUM = "file://COPYING;md5=8eacfdc17c8f4d219e131a073973b97d"
5 5
6DEPENDS = "curl openssl zlib libssh2 libgcrypt libpcre2" 6DEPENDS = "curl openssl zlib libssh2 libgcrypt libpcre2"
7 7
8SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v1.7;protocol=https" 8SRC_URI = "git://github.com/libgit2/libgit2.git;branch=main;protocol=https \
9SRCREV = "a418d9d4ab87bae16b87d8f37143a4687ae0e4b2" 9 file://0001-src-libgit2-CMakeLists.txt-install-cmake-files-into-.patch \
10 10 "
11S = "${WORKDIR}/git" 11SRCREV = "338e6fb681369ff0537719095e22ce9dc602dbf0"
12 12
13inherit cmake 13inherit cmake
14 14
@@ -19,3 +19,7 @@ EXTRA_OECMAKE = "\
19" 19"
20 20
21BBCLASSEXTEND = "native" 21BBCLASSEXTEND = "native"
22
23do_install:append() {
24 sed -i -e 's,${RECIPE_SYSROOT},,g' ${D}${libdir}/cmake/libgit2/libgit2Targets.cmake
25}
diff --git a/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch b/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch
index d72838bb05..39798c009f 100644
--- a/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch
+++ b/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch
@@ -1,4 +1,4 @@
1From 75622f8b21459eb556b36edc3537fdaded7f04bf Mon Sep 17 00:00:00 2001 1From b1b6c28b4753c027052aeb6275a73eed06f0bf49 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 28 Feb 2020 09:19:56 +0000 3Date: Fri, 28 Feb 2020 09:19:56 +0000
4Subject: [PATCH] Do not fail when testing config scripts 4Subject: [PATCH] Do not fail when testing config scripts
@@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
14 1 file changed, 1 deletion(-) 14 1 file changed, 1 deletion(-)
15 15
16diff --git a/src/Makefile.am b/src/Makefile.am 16diff --git a/src/Makefile.am b/src/Makefile.am
17index 9389e99..6ded263 100644 17index e56bb23..8c3ba7b 100644
18--- a/src/Makefile.am 18--- a/src/Makefile.am
19+++ b/src/Makefile.am 19+++ b/src/Makefile.am
20@@ -324,6 +324,5 @@ gpg-error-config: gpgrt-config gpg-error-config-old gpg-error-config-test.sh 20@@ -326,6 +326,5 @@ gpg-error-config: gpgrt-config gpg-error-config-old gpg-error-config-test.sh
21 else \ 21 else \
22 echo "no"; \ 22 echo "no"; \
23 echo "*** Please report to <https://bugs.gnupg.org> with gpg-error-config-test.log"; \ 23 echo "*** Please report to <https://bugs.gnupg.org> with gpg-error-config-test.log"; \
diff --git a/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch b/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
index 3d886bcaa4..dbf728b2de 100644
--- a/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
+++ b/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
@@ -1,6 +1,6 @@
1From b0df1cb468264a9bb9113524f0e1318c456b2348 Mon Sep 17 00:00:00 2001 1From 3529df77cd20253ce2a9c1962d7a72058a04fd98 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Thu, 29 Mar 2018 15:12:17 +0800 3Date: Wed, 21 Aug 2024 20:03:29 -0700
4Subject: [PATCH] support pkgconfig 4Subject: [PATCH] support pkgconfig
5 5
6Upstream-Status: Inappropriate [gnupg upstream will not take this, it has been tried with other components] 6Upstream-Status: Inappropriate [gnupg upstream will not take this, it has been tried with other components]
@@ -13,15 +13,17 @@ Refactored for 1.33
13Signed-off-by: Armin Kuster <akuster808@gmail.com> 13Signed-off-by: Armin Kuster <akuster808@gmail.com>
14Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> 14Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
15 15
16Rebase to 1.50
17Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
16--- 18---
17 src/gpg-error.m4 | 192 ++--------------------------------------------- 19 src/gpg-error.m4 | 200 ++---------------------------------------------
18 1 file changed, 5 insertions(+), 187 deletions(-) 20 1 file changed, 5 insertions(+), 195 deletions(-)
19 21
20diff --git a/src/gpg-error.m4 b/src/gpg-error.m4 22diff --git a/src/gpg-error.m4 b/src/gpg-error.m4
21index 7fa52b1..15a0859 100644 23index 2d24071..c561725 100644
22--- a/src/gpg-error.m4 24--- a/src/gpg-error.m4
23+++ b/src/gpg-error.m4 25+++ b/src/gpg-error.m4
24@@ -15,187 +15,14 @@ 26@@ -15,196 +15,14 @@
25 dnl 27 dnl
26 dnl Find gpg-error-config, for backward compatibility 28 dnl Find gpg-error-config, for backward compatibility
27 dnl 29 dnl
@@ -135,17 +137,16 @@ index 7fa52b1..15a0859 100644
135- fi 137- fi
136- 138-
137- if test -n "$gpgrt_libdir"; then 139- if test -n "$gpgrt_libdir"; then
140- # Add the --libdir option to GPGRT_CONFIG
138- GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir" 141- GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir"
139- if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then 142- # Make sure if gpgrt-config really works, by testing config gpg-error
140- GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error" 143- if ! $GPGRT_CONFIG gpg-error --exists; then
141- AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config]) 144- # If it doesn't work, clear the GPGRT_CONFIG variable.
142- gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion`
143- else
144- gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
145- unset GPGRT_CONFIG 145- unset GPGRT_CONFIG
146- fi 146- fi
147- elif test "$GPG_ERROR_CONFIG" != "no"; then 147- else
148- gpg_error_config_version=`$GPG_ERROR_CONFIG --version` 148- # GPGRT_CONFIG found but no suitable dir for --libdir found.
149- # This is a failure. Clear the GPGRT_CONFIG variable.
149- unset GPGRT_CONFIG 150- unset GPGRT_CONFIG
150- fi 151- fi
151-]) 152-])
@@ -155,17 +156,27 @@ index 7fa52b1..15a0859 100644
155-dnl 156-dnl
156-dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS, 157-dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS,
157-dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are 158-dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are
158-dnl used for programs requireing real multi thread support. 159-dnl used for programs requiring real multi thread support.
159-dnl 160-dnl
160-dnl If a prefix option is not used, the config script is first 161-dnl If a prefix option is not used, the config script is first
161-dnl searched in $SYSROOT/bin and then along $PATH. If the used 162-dnl searched in $SYSROOT/bin and then along $PATH. If the used
162-dnl config script does not match the host specification the script 163-dnl config script does not match the host specification the script
163-dnl is added to the gpg_config_script_warn variable. 164-dnl is added to the gpg_config_script_warn variable.
164-dnl 165-dnl
165-AC_DEFUN([AM_PATH_GPG_ERROR],[dnl 166 AC_DEFUN([AM_PATH_GPG_ERROR],
166-AC_REQUIRE([AC_CANONICAL_HOST])dnl 167-[ AC_REQUIRE([AC_CANONICAL_HOST])dnl
167-AC_REQUIRE([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG])dnl 168- AC_REQUIRE([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG])dnl
168-AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl 169- AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
170- if test x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
171- GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error"
172- AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config])
173- gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion`
174- elif test x"$GPG_ERROR_CONFIG" != x -a "$GPG_ERROR_CONFIG" != "no"; then
175- gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
176- else
177- gpg_error_config_version="0.0"
178- fi
179-
169- min_gpg_error_version=ifelse([$1], ,1.33,$1) 180- min_gpg_error_version=ifelse([$1], ,1.33,$1)
170- ok=no 181- ok=no
171- if test "$GPG_ERROR_CONFIG" != "no"; then 182- if test "$GPG_ERROR_CONFIG" != "no"; then
@@ -188,7 +199,6 @@ index 7fa52b1..15a0859 100644
188- fi 199- fi
189- fi 200- fi
190- AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version) 201- AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version)
191+AC_DEFUN([AM_PATH_GPG_ERROR],
192+[ AC_REQUIRE([AC_CANONICAL_HOST]) 202+[ AC_REQUIRE([AC_CANONICAL_HOST])
193+ min_gpg_error_version=ifelse([$1], ,0.0,$1) 203+ min_gpg_error_version=ifelse([$1], ,0.0,$1)
194+ PKG_CHECK_MODULES(GPG_ERROR, [gpg-error >= $min_gpg_error_version], [ok=yes], [ok=no]) 204+ PKG_CHECK_MODULES(GPG_ERROR, [gpg-error >= $min_gpg_error_version], [ok=yes], [ok=no])
@@ -214,7 +224,7 @@ index 7fa52b1..15a0859 100644
214 fi 224 fi
215 if test x"$gpg_error_config_host" != xnone ; then 225 if test x"$gpg_error_config_host" != xnone ; then
216 if test x"$gpg_error_config_host" != x"$host" ; then 226 if test x"$gpg_error_config_host" != x"$host" ; then
217@@ -211,15 +38,6 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl 227@@ -220,15 +38,7 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
218 fi 228 fi
219 fi 229 fi
220 else 230 else
@@ -230,3 +240,4 @@ index 7fa52b1..15a0859 100644
230- AC_SUBST(GPG_ERROR_MT_CFLAGS) 240- AC_SUBST(GPG_ERROR_MT_CFLAGS)
231- AC_SUBST(GPG_ERROR_MT_LIBS) 241- AC_SUBST(GPG_ERROR_MT_LIBS)
232 ]) 242 ])
243+
diff --git a/meta/recipes-support/libgpg-error/libgpg-error_1.48.bb b/meta/recipes-support/libgpg-error/libgpg-error_1.55.bb
index 9f2b49209d..7de52314a4 100644
--- a/meta/recipes-support/libgpg-error/libgpg-error_1.48.bb
+++ b/meta/recipes-support/libgpg-error/libgpg-error_1.55.bb
@@ -6,11 +6,10 @@ BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
6LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" 6LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
7LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ 7LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
8 file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ 8 file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
9 file://src/gpg-error.h.in;beginline=2;endline=18;md5=20f4cf5d81ea2fad18f6297500018654 \ 9 file://src/gpg-error.h.in;beginline=2;endline=18;md5=badc79a9308e1cbd2657b2441c7cf017 \
10 file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \ 10 file://src/init.c;beginline=2;endline=17;md5=f01cdfcf747af5380590cfd9bbfeaaf7 \
11 " 11 "
12 12
13
14SECTION = "libs" 13SECTION = "libs"
15 14
16UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" 15UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
@@ -20,12 +19,14 @@ SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \
20 file://run-ptest \ 19 file://run-ptest \
21 " 20 "
22 21
23SRC_URI[sha256sum] = "89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f" 22SRC_URI[sha256sum] = "95b178148863f07d45df0cea67e880a79b9ef71f5d230baddc0071128516ef78"
24 23
25BINCONFIG = "${bindir}/gpg-error-config" 24BINCONFIG = "${bindir}/gpg-error-config"
26 25
27inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script ptest 26inherit autotools binconfig-disabled pkgconfig gettext multilib_header multilib_script ptest
28 27
28require recipes-support/gnupg/drop-unknown-suffix.inc
29
29RDEPENDS:${PN}-ptest:append = " make bash" 30RDEPENDS:${PN}-ptest:append = " make bash"
30 31
31MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config" 32MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/gpgrt-config"
diff --git a/meta/recipes-support/libical/libical/0001-cmake-Do-not-export-CC-into-gir-compiler.patch b/meta/recipes-support/libical/libical/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
index 3841c060ee..0f0dadb4e4 100644
--- a/meta/recipes-support/libical/libical/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
+++ b/meta/recipes-support/libical/libical/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
@@ -1,4 +1,4 @@
1From c06d8a8990c996cbb854508a944202ba70ba7a7c Mon Sep 17 00:00:00 2001 1From 7b20ca7f24a4cac25998bfcc70eed75bf796816b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 3 Mar 2022 20:10:04 -0800 3Date: Thu, 3 Mar 2022 20:10:04 -0800
4Subject: [PATCH] cmake: Do not export CC into gir compiler 4Subject: [PATCH] cmake: Do not export CC into gir compiler
@@ -15,7 +15,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 1 file changed, 1 insertion(+), 2 deletions(-) 15 1 file changed, 1 insertion(+), 2 deletions(-)
16 16
17diff --git a/cmake/modules/GObjectIntrospectionMacros.cmake b/cmake/modules/GObjectIntrospectionMacros.cmake 17diff --git a/cmake/modules/GObjectIntrospectionMacros.cmake b/cmake/modules/GObjectIntrospectionMacros.cmake
18index 83aff931..d7d3f898 100644 18index 83aff93..d7d3f89 100644
19--- a/cmake/modules/GObjectIntrospectionMacros.cmake 19--- a/cmake/modules/GObjectIntrospectionMacros.cmake
20+++ b/cmake/modules/GObjectIntrospectionMacros.cmake 20+++ b/cmake/modules/GObjectIntrospectionMacros.cmake
21@@ -50,8 +50,7 @@ macro(gir_add_introspections introspections_girs) 21@@ -50,8 +50,7 @@ macro(gir_add_introspections introspections_girs)
@@ -28,6 +28,3 @@ index 83aff931..d7d3f898 100644
28 ${GObjectIntrospection_SCANNER_ARGS} 28 ${GObjectIntrospection_SCANNER_ARGS}
29 --namespace=${_gir_namespace} 29 --namespace=${_gir_namespace}
30 --nsversion=${_gir_version} 30 --nsversion=${_gir_version}
31--
322.35.1
33
diff --git a/meta/recipes-support/libical/libical_3.0.18.bb b/meta/recipes-support/libical/libical_3.0.20.bb
index 040d23b69d..d62c88e347 100644
--- a/meta/recipes-support/libical/libical_3.0.18.bb
+++ b/meta/recipes-support/libical/libical_3.0.20.bb
@@ -15,7 +15,7 @@ SECTION = "libs"
15SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ 15SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
16 file://0001-cmake-Do-not-export-CC-into-gir-compiler.patch \ 16 file://0001-cmake-Do-not-export-CC-into-gir-compiler.patch \
17 " 17 "
18SRC_URI[sha256sum] = "72b7dc1a5937533aee5a2baefc990983b66b141dd80d43b51f80aced4aae219c" 18SRC_URI[sha256sum] = "e73de92f5a6ce84c1b00306446b290a2b08cdf0a80988eca0a2c9d5c3510b4c2"
19 19
20inherit cmake pkgconfig gobject-introspection vala github-releases 20inherit cmake pkgconfig gobject-introspection vala github-releases
21 21
@@ -37,7 +37,8 @@ EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
37EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper" 37EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
38EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper" 38EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper"
39EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen" 39EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen"
40EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF', d)}" 40EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF -DICAL_GLIB_VAPI=OFF', d)}"
41EXTRA_OECMAKE:append:class-native = " -DGOBJECT_INTROSPECTION=OFF -DICAL_GLIB_VAPI=OFF"
41 42
42# Tell the cross-libical where the tool it needs to build is 43# Tell the cross-libical where the tool it needs to build is
43EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake" 44EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
diff --git a/meta/recipes-support/libjitterentropy/libjitterentropy_3.4.1.bb b/meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb
index 6cef8c068c..7890dfa5c7 100644
--- a/meta/recipes-support/libjitterentropy/libjitterentropy_3.4.1.bb
+++ b/meta/recipes-support/libjitterentropy/libjitterentropy_3.6.3.bb
@@ -5,13 +5,12 @@ stamp. It is a small-scale, yet fast entropy source that is viable in almost \
5all environments and on a lot of CPU architectures." 5all environments and on a lot of CPU architectures."
6HOMEPAGE = "http://www.chronox.de/jent.html" 6HOMEPAGE = "http://www.chronox.de/jent.html"
7LICENSE = "GPL-2.0-or-later | BSD-3-Clause" 7LICENSE = "GPL-2.0-or-later | BSD-3-Clause"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=64a87180908540620ce364b5e69b3b03 \ 8LIC_FILES_CHKSUM = "file://LICENSE;md5=e01027c4ad1fe5a4768f8488c945d491 \
9 file://LICENSE.gplv2;md5=eb723b61539feef013de476e68b5c50a \ 9 file://LICENSE.gplv2;md5=eb723b61539feef013de476e68b5c50a \
10 file://LICENSE.bsd;md5=66a5cedaf62c4b2637025f049f9b826f \ 10 file://LICENSE.bsd;md5=66a5cedaf62c4b2637025f049f9b826f \
11 " 11 "
12SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git;branch=master;protocol=https" 12SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git;branch=master;protocol=https;tag=v${PV}"
13SRCREV = "4544e11320138ac02797af81766f4476a71bb09f" 13SRCREV = "c90ff465dcdb6a6949542c72a26a8ab496daa8cb"
14S = "${WORKDIR}/git"
15 14
16do_configure[noexec] = "1" 15do_configure[noexec] = "1"
17 16
diff --git a/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch b/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch
index bdb80ff34d..468fbd76f8 100644
--- a/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch
+++ b/meta/recipes-support/libksba/libksba/ksba-add-pkgconfig-support.patch
@@ -1,4 +1,4 @@
1From ca8174aa81d7bf364b33f7254a9e887735c4996d Mon Sep 17 00:00:00 2001 1From 46c0582d1087220e9404a14a851085b8f29773c4 Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com> 2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Mon, 3 Dec 2012 18:17:31 +0800 3Date: Mon, 3 Dec 2012 18:17:31 +0800
4Subject: [PATCH] libksba: add pkgconfig support 4Subject: [PATCH] libksba: add pkgconfig support
@@ -10,19 +10,20 @@ This patch is rejected by upstream for the reason below:
10They think pkgconfig adds no portability and maintaining them is not worthwhile. 10They think pkgconfig adds no portability and maintaining them is not worthwhile.
11 11
12Signed-off-by: Chen Qi <Qi.Chen@windriver.com> 12Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
13
14--- 13---
15 src/ksba.m4 | 90 +++-------------------------------------------------- 14 src/ksba.m4 | 93 +++--------------------------------------------------
16 1 file changed, 4 insertions(+), 86 deletions(-) 15 1 file changed, 5 insertions(+), 88 deletions(-)
17 16
18diff --git a/src/ksba.m4 b/src/ksba.m4 17diff --git a/src/ksba.m4 b/src/ksba.m4
19index 452c245..aa96255 100644 18index 80f0d38..8f8761a 100644
20--- a/src/ksba.m4 19--- a/src/ksba.m4
21+++ b/src/ksba.m4 20+++ b/src/ksba.m4
22@@ -23,37 +23,6 @@ dnl with a changed API. 21@@ -107,39 +107,7 @@ dnl this features allows to prevent build against newer versions of libksba
22 dnl with a changed API.
23 dnl 23 dnl
24 AC_DEFUN([AM_PATH_KSBA], 24 AC_DEFUN([AM_PATH_KSBA],
25 [ AC_REQUIRE([AC_CANONICAL_HOST]) 25-[ AC_REQUIRE([AC_CANONICAL_HOST])dnl
26- AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
26- dnl --with-libksba-prefix=PFX is the preferred name for this option, 27- dnl --with-libksba-prefix=PFX is the preferred name for this option,
27- dnl since that is consistent with how our three siblings use the directory/ 28- dnl since that is consistent with how our three siblings use the directory/
28- dnl package name in --with-$dir_name-prefix=PFX. 29- dnl package name in --with-$dir_name-prefix=PFX.
@@ -54,10 +55,11 @@ index 452c245..aa96255 100644
54- if test -z "$use_gpgrt_config"; then 55- if test -z "$use_gpgrt_config"; then
55- AC_PATH_PROG(KSBA_CONFIG, ksba-config, no) 56- AC_PATH_PROG(KSBA_CONFIG, ksba-config, no)
56- fi 57- fi
58+[ AC_REQUIRE([AC_CANONICAL_HOST])
57 59
58 tmp=ifelse([$1], ,1:1.0.0,$1) 60 tmp=ifelse([$1], ,1:1.0.0,$1)
59 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 61 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
60@@ -64,56 +33,13 @@ AC_DEFUN([AM_PATH_KSBA], 62@@ -150,56 +118,13 @@ AC_DEFUN([AM_PATH_KSBA],
61 min_ksba_version="$tmp" 63 min_ksba_version="$tmp"
62 fi 64 fi
63 65
@@ -117,7 +119,7 @@ index 452c245..aa96255 100644
117 if test "$tmp" -gt 0 ; then 119 if test "$tmp" -gt 0 ; then
118 AC_MSG_CHECKING([KSBA API version]) 120 AC_MSG_CHECKING([KSBA API version])
119 if test "$req_ksba_api" -eq "$tmp" ; then 121 if test "$req_ksba_api" -eq "$tmp" ; then
120@@ -126,14 +52,8 @@ AC_DEFUN([AM_PATH_KSBA], 122@@ -212,14 +137,8 @@ AC_DEFUN([AM_PATH_KSBA],
121 fi 123 fi
122 fi 124 fi
123 if test $ok = yes; then 125 if test $ok = yes; then
@@ -133,7 +135,7 @@ index 452c245..aa96255 100644
133 if test x"$libksba_config_host" != xnone ; then 135 if test x"$libksba_config_host" != xnone ; then
134 if test x"$libksba_config_host" != x"$host" ; then 136 if test x"$libksba_config_host" != x"$host" ; then
135 AC_MSG_WARN([[ 137 AC_MSG_WARN([[
136@@ -147,8 +67,6 @@ AC_DEFUN([AM_PATH_KSBA], 138@@ -233,8 +152,6 @@ AC_DEFUN([AM_PATH_KSBA],
137 fi 139 fi
138 fi 140 fi
139 else 141 else
diff --git a/meta/recipes-support/libksba/libksba_1.6.6.bb b/meta/recipes-support/libksba/libksba_1.6.7.bb
index 2230a032f6..d97fa84977 100644
--- a/meta/recipes-support/libksba/libksba_1.6.6.bb
+++ b/meta/recipes-support/libksba/libksba_1.6.7.bb
@@ -20,11 +20,13 @@ BINCONFIG = "${bindir}/ksba-config"
20 20
21inherit autotools binconfig-disabled pkgconfig texinfo 21inherit autotools binconfig-disabled pkgconfig texinfo
22 22
23require recipes-support/gnupg/drop-unknown-suffix.inc
24
23UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" 25UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
24SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ 26SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
25 file://ksba-add-pkgconfig-support.patch" 27 file://ksba-add-pkgconfig-support.patch"
26 28
27SRC_URI[sha256sum] = "5dec033d211559338838c0c4957c73dfdc3ee86f73977d6279640c9cd08ce6a4" 29SRC_URI[sha256sum] = "cf72510b8ebb4eb6693eef765749d83677a03c79291a311040a5bfd79baab763"
28 30
29do_configure:prepend () { 31do_configure:prepend () {
30 # Else these could be used in preference to those in aclocal-copy 32 # Else these could be used in preference to those in aclocal-copy
diff --git a/meta/recipes-support/libmpc/libmpc_1.3.1.bb b/meta/recipes-support/libmpc/libmpc_1.3.1.bb
index ed57396c0a..b3853fc964 100644
--- a/meta/recipes-support/libmpc/libmpc_1.3.1.bb
+++ b/meta/recipes-support/libmpc/libmpc_1.3.1.bb
@@ -7,6 +7,6 @@ SRC_URI = "${GNU_MIRROR}/mpc/mpc-${PV}.tar.gz"
7 7
8SRC_URI[sha256sum] = "ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8" 8SRC_URI[sha256sum] = "ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8"
9 9
10S = "${WORKDIR}/mpc-${PV}" 10S = "${UNPACKDIR}/mpc-${PV}"
11BBCLASSEXTEND = "native nativesdk" 11BBCLASSEXTEND = "native nativesdk"
12 12
diff --git a/meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch b/meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch
new file mode 100644
index 0000000000..cc5e3890a1
--- /dev/null
+++ b/meta/recipes-support/libnl/files/0001-tests-cksuite-all-netns.c-disable-route_1.patch
@@ -0,0 +1,31 @@
1From 9e45c8809fc4e0aa1dd2ec2ac3e57352049f1b92 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de>
3Date: Tue, 20 Aug 2024 19:01:59 +0200
4Subject: [PATCH] tests/cksuite-all-netns.c: disable route_1
5
6This is a new test added in https://github.com/thom311/libnl/commit/49f7822961f5bc6b18cd2a2d3f3b8d2ab0896d3f
7and while it passes on host Debian, it doesn't inside poky.
8
9Investigation into why is proceeding slowly, and I'm simply
10not skilled enough in AF_NETLINK, so let's disable until the
11core reason for the fail is arrived at.
12
13Upstream-Status: Inappropriate [fail reported and investigated at https://github.com/thom311/libnl/issues/399]
14Signed-off-by: Alexander Kanavin <alex@linutronix.de>
15---
16 tests/cksuite-all-netns.c | 2 +-
17 1 file changed, 1 insertion(+), 1 deletion(-)
18
19diff --git a/tests/cksuite-all-netns.c b/tests/cksuite-all-netns.c
20index 5b9d3a5..b2fc46a 100644
21--- a/tests/cksuite-all-netns.c
22+++ b/tests/cksuite-all-netns.c
23@@ -341,7 +341,7 @@ Suite *make_nl_netns_suite(void)
24 nltst_netns_fixture_teardown);
25 tcase_add_test(tc, cache_and_clone);
26 tcase_add_loop_test(tc, test_create_iface, 0, 17);
27- tcase_add_test(tc, route_1);
28+ //tcase_add_test(tc, route_1);
29 suite_add_tcase(suite, tc);
30
31 return suite;
diff --git a/meta/recipes-support/libnl/libnl_3.9.0.bb b/meta/recipes-support/libnl/libnl_3.11.0.bb
index db9d93e8cb..26c87dbb1c 100644
--- a/meta/recipes-support/libnl/libnl_3.9.0.bb
+++ b/meta/recipes-support/libnl/libnl_3.11.0.bb
@@ -4,7 +4,7 @@ APIs to netlink protocol based Linux kernel interfaces. libnl is the core \
4library implementing the fundamentals required to use the netlink protocol \ 4library implementing the fundamentals required to use the netlink protocol \
5such as socket handling, message construction and parsing, and sending \ 5such as socket handling, message construction and parsing, and sending \
6and receiving of data." 6and receiving of data."
7HOMEPAGE = "http://www.infradead.org/~tgr/libnl/" 7HOMEPAGE = "https://github.com/thom311/libnl"
8SECTION = "libs/network" 8SECTION = "libs/network"
9 9
10PE = "1" 10PE = "1"
@@ -16,9 +16,10 @@ DEPENDS = "flex-native bison-native"
16 16
17SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \ 17SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \
18 file://run-ptest \ 18 file://run-ptest \
19 file://0001-tests-cksuite-all-netns.c-disable-route_1.patch \
19 " 20 "
20 21
21SRC_URI[sha256sum] = "aed507004d728a5cf11eab48ca4bf9e6e1874444e33939b9d3dfed25018ee9bb" 22SRC_URI[sha256sum] = "2a56e1edefa3e68a7c00879496736fdbf62fc94ed3232c0baba127ecfa76874d"
22 23
23GITHUB_BASE_URI = "https://github.com/thom311/${BPN}/releases" 24GITHUB_BASE_URI = "https://github.com/thom311/${BPN}/releases"
24UPSTREAM_CHECK_REGEX = "releases/tag/libnl(?P<pver>.+)" 25UPSTREAM_CHECK_REGEX = "releases/tag/libnl(?P<pver>.+)"
@@ -52,6 +53,7 @@ RCONFLICTS:${PN}-genl = "libnl-genl2"
52 53
53DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'libcheck', '', d)}" 54DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'libcheck', '', d)}"
54RRECOMMENDS:${PN}-ptest += "kernel-module-dummy kernel-module-bonding" 55RRECOMMENDS:${PN}-ptest += "kernel-module-dummy kernel-module-bonding"
56RDEPENDS:${PN}-ptest += "iproute2-ip"
55 57
56do_compile_ptest() { 58do_compile_ptest() {
57 oe_runmake ./tests/check-all 59 oe_runmake ./tests/check-all
diff --git a/meta/recipes-support/libpcre/libpcre2_10.43.bb b/meta/recipes-support/libpcre/libpcre2_10.45.bb
index fd0bd79212..4fbb8921c5 100644
--- a/meta/recipes-support/libpcre/libpcre2_10.43.bb
+++ b/meta/recipes-support/libpcre/libpcre2_10.45.bb
@@ -8,18 +8,18 @@ SUMMARY = "Perl Compatible Regular Expressions version 2"
8HOMEPAGE = "http://www.pcre.org" 8HOMEPAGE = "http://www.pcre.org"
9SECTION = "devel" 9SECTION = "devel"
10LICENSE = "BSD-3-Clause" 10LICENSE = "BSD-3-Clause"
11LIC_FILES_CHKSUM = "file://LICENCE;md5=321a5eb46acae6b6c1ff2c7a866d836a" 11LIC_FILES_CHKSUM = "file://LICENCE.md;md5=8446a1fd12e40d9d64c79234fbb1f812"
12 12
13SRC_URI = "${GITHUB_BASE_URI}/download/pcre2-${PV}/pcre2-${PV}.tar.bz2" 13SRC_URI = "${GITHUB_BASE_URI}/download/pcre2-${PV}/pcre2-${PV}.tar.bz2"
14 14
15GITHUB_BASE_URI = "https://github.com/PhilipHazel/pcre2/releases" 15GITHUB_BASE_URI = "https://github.com/PCRE2Project/pcre2/releases"
16UPSTREAM_CHECK_REGEX = "releases/tag/pcre2-(?P<pver>\d+(\.\d+)+)$" 16UPSTREAM_CHECK_REGEX = "releases/tag/pcre2-(?P<pver>\d+(\.\d+)+)$"
17 17
18SRC_URI[sha256sum] = "e2a53984ff0b07dfdb5ae4486bbb9b21cca8e7df2434096cc9bf1b728c350bcb" 18SRC_URI[sha256sum] = "21547f3516120c75597e5b30a992e27a592a31950b5140e7b8bfde3f192033c4"
19 19
20CVE_PRODUCT = "pcre2" 20CVE_PRODUCT = "pcre2"
21 21
22S = "${WORKDIR}/pcre2-${PV}" 22S = "${UNPACKDIR}/pcre2-${PV}"
23 23
24PROVIDES += "pcre2" 24PROVIDES += "pcre2"
25DEPENDS += "bzip2 zlib" 25DEPENDS += "bzip2 zlib"
diff --git a/meta/recipes-support/libpcre/libpcre_8.45.bb b/meta/recipes-support/libpcre/libpcre_8.45.bb
index 46fedbae48..67327065e4 100644
--- a/meta/recipes-support/libpcre/libpcre_8.45.bb
+++ b/meta/recipes-support/libpcre/libpcre_8.45.bb
@@ -7,7 +7,8 @@ HOMEPAGE = "http://www.pcre.org"
7SECTION = "devel" 7SECTION = "devel"
8LICENSE = "BSD-3-Clause" 8LICENSE = "BSD-3-Clause"
9LIC_FILES_CHKSUM = "file://LICENCE;md5=b5d5d1a69a24ea2718263f1ff85a1c58" 9LIC_FILES_CHKSUM = "file://LICENCE;md5=b5d5d1a69a24ea2718263f1ff85a1c58"
10SRC_URI = "${SOURCEFORGE_MIRROR}/pcre/pcre-${PV}.tar.bz2 \ 10SOURCEFORGE_PROJECT = "pcre"
11SRC_URI = "${SOURCEFORGE_MIRROR}/${SOURCEFORGE_PROJECT}/pcre-${PV}.tar.bz2 \
11 file://run-ptest \ 12 file://run-ptest \
12 file://Makefile \ 13 file://Makefile \
13 " 14 "
@@ -16,7 +17,7 @@ SRC_URI[sha256sum] = "4dae6fdcd2bb0bb6c37b5f97c33c2be954da743985369cddac3546e321
16 17
17CVE_PRODUCT = "pcre" 18CVE_PRODUCT = "pcre"
18 19
19S = "${WORKDIR}/pcre-${PV}" 20S = "${UNPACKDIR}/pcre-${PV}"
20 21
21PROVIDES += "pcre" 22PROVIDES += "pcre"
22DEPENDS += "bzip2 zlib" 23DEPENDS += "bzip2 zlib"
@@ -32,7 +33,7 @@ PACKAGECONFIG[jit] = "--enable-jit=auto,--disable-jit"
32 33
33BINCONFIG = "${bindir}/pcre-config" 34BINCONFIG = "${bindir}/pcre-config"
34 35
35inherit autotools binconfig-disabled ptest 36inherit autotools binconfig-disabled ptest sourceforge-releases
36 37
37EXTRA_OECONF = "--enable-utf" 38EXTRA_OECONF = "--enable-utf"
38 39
@@ -56,7 +57,7 @@ BBCLASSEXTEND = "native nativesdk"
56 57
57do_install_ptest() { 58do_install_ptest() {
58 t=${D}${PTEST_PATH} 59 t=${D}${PTEST_PATH}
59 cp ${WORKDIR}/Makefile $t 60 cp ${UNPACKDIR}/Makefile $t
60 cp -r ${S}/testdata $t 61 cp -r ${S}/testdata $t
61 for i in pcre_stringpiece_unittest pcregrep pcretest; \ 62 for i in pcre_stringpiece_unittest pcregrep pcretest; \
62 do cp ${B}/.libs/$i $t; \ 63 do cp ${B}/.libs/$i $t; \
diff --git a/meta/recipes-support/libproxy/libproxy_0.5.4.bb b/meta/recipes-support/libproxy/libproxy_0.5.10.bb
index b4f4c6d254..21930ada00 100644
--- a/meta/recipes-support/libproxy/libproxy_0.5.4.bb
+++ b/meta/recipes-support/libproxy/libproxy_0.5.10.bb
@@ -13,9 +13,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
13 13
14DEPENDS = "glib-2.0" 14DEPENDS = "glib-2.0"
15 15
16SRC_URI = "git://github.com/libproxy/libproxy;protocol=https;branch=main" 16SRC_URI = "git://github.com/libproxy/libproxy;protocol=https;branch=main;tag=${PV}"
17SRCREV = "dff9a603d823dcc740ec966cd27960daa6b891b1" 17SRCREV = "7e4852f9658084c61a95973b8a1d720b1763437a"
18S = "${WORKDIR}/git"
19 18
20inherit meson pkgconfig gobject-introspection vala gi-docgen 19inherit meson pkgconfig gobject-introspection vala gi-docgen
21GIDOCGEN_MESON_OPTION = 'docs' 20GIDOCGEN_MESON_OPTION = 'docs'
diff --git a/meta/recipes-support/libseccomp/libseccomp_2.5.5.bb b/meta/recipes-support/libseccomp/libseccomp_2.6.0.bb
index 478e5f4289..97988afa27 100644
--- a/meta/recipes-support/libseccomp/libseccomp_2.5.5.bb
+++ b/meta/recipes-support/libseccomp/libseccomp_2.6.0.bb
@@ -7,14 +7,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
7 7
8DEPENDS += "gperf-native" 8DEPENDS += "gperf-native"
9 9
10SRCREV = "f0b04ab0b4fc0bc2cde6da1f407b4a487fe6d78f" 10SRCREV = "c7c0caed1d04292500ed4b9bb386566053eb9775"
11 11
12SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=release-2.5;protocol=https \ 12SRC_URI = "git://github.com/seccomp/libseccomp.git;branch=release-2.6;protocol=https \
13 file://run-ptest \ 13 file://run-ptest \
14 " 14 "
15 15
16S = "${WORKDIR}/git"
17
18inherit autotools-brokensep pkgconfig ptest features_check 16inherit autotools-brokensep pkgconfig ptest features_check
19 17
20inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)} 18inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
diff --git a/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch b/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch
deleted file mode 100644
index d867e5bc17..0000000000
--- a/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From ced3c5d8cad0177b297666343f1561799dfefb0d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 22 Nov 2023 18:49:10 -0800
4Subject: [PATCH] Fix build with libxml2-2.12.0 and clang-17
5
6Fixes build errors about missing function prototypes with clang-17
7
8Fixes
9| ../libsoup-2.74.3/libsoup/soup-xmlrpc-old.c:512:8: error: call to undeclared function 'xmlParseMemory'; ISO C99 and later do not support implicit function declarations
10
11Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/385]
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 libsoup/soup-xmlrpc-old.c | 1 +
15 libsoup/soup-xmlrpc.c | 1 +
16 2 files changed, 2 insertions(+)
17
18diff --git a/libsoup/soup-xmlrpc-old.c b/libsoup/soup-xmlrpc-old.c
19index c57086b6..527e3b23 100644
20--- a/libsoup/soup-xmlrpc-old.c
21+++ b/libsoup/soup-xmlrpc-old.c
22@@ -11,6 +11,7 @@
23
24 #include <string.h>
25
26+#include <libxml/parser.h>
27 #include <libxml/tree.h>
28
29 #include "soup-xmlrpc-old.h"
30diff --git a/libsoup/soup-xmlrpc.c b/libsoup/soup-xmlrpc.c
31index 42dcda9c..e991cbf0 100644
32--- a/libsoup/soup-xmlrpc.c
33+++ b/libsoup/soup-xmlrpc.c
34@@ -17,6 +17,7 @@
35
36 #include <string.h>
37 #include <errno.h>
38+#include <libxml/parser.h>
39 #include <libxml/tree.h>
40 #include "soup-xmlrpc.h"
41 #include "soup.h"
42--
432.43.0
44
diff --git a/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb b/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
deleted file mode 100644
index ee20530b64..0000000000
--- a/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
+++ /dev/null
@@ -1,59 +0,0 @@
1SUMMARY = "An HTTP library implementation in C"
2DESCRIPTION = "libsoup is an HTTP client/server library for GNOME. It uses GObjects \
3and the glib main loop, to integrate well with GNOME applications."
4HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup"
5BUGTRACKER = "https://bugzilla.gnome.org/"
6SECTION = "x11/gnome/libs"
7LICENSE = "LGPL-2.0-only"
8LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
9
10DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl"
11
12SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
13
14SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz \
15 file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch"
16SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13"
17
18CVE_PRODUCT = "libsoup"
19
20S = "${WORKDIR}/libsoup-${PV}"
21
22inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc
23
24UPSTREAM_CHECK_REGEX = "libsoup-(?P<pver>2(\.(?!99)\d+)+)\.tar"
25
26GIR_MESON_ENABLE_FLAG = 'enabled'
27GIR_MESON_DISABLE_FLAG = 'disabled'
28
29PACKAGECONFIG ??= ""
30PACKAGECONFIG[brotli] = "-Dbrotli=enabled,-Dbrotli=disabled,brotli"
31# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards
32PACKAGECONFIG[gnome] = "-Dgnome=true,-Dgnome=false"
33PACKAGECONFIG[gssapi] = "-Dgssapi=enabled,-Dgssapi=disabled,krb5"
34PACKAGECONFIG[ntlm] = "-Dntlm=enabled,-Dntlm=disabled"
35PACKAGECONFIG[sysprof] = "-Dsysprof=enabled,-Dsysprof=disabled,sysprof"
36
37# Tell libsoup where the target ntlm_auth is installed
38do_write_config:append:class-target() {
39 cat >${WORKDIR}/soup.cross <<EOF
40[binaries]
41ntlm_auth = '${bindir}/ntlm_auth'
42EOF
43}
44EXTRA_OEMESON:append:class-target = " --cross-file ${WORKDIR}/soup.cross"
45
46EXTRA_OEMESON += "-Dvapi=disabled -Dtls_check=false"
47
48GTKDOC_MESON_OPTION = "gtk_doc"
49
50# When built without gnome support, libsoup-2.4 will contain only one shared lib
51# and will therefore become subject to renaming by debian.bbclass. Prevent
52# renaming in order to keep the package name consistent regardless of whether
53# gnome support is enabled or disabled.
54DEBIAN_NOAUTONAME:${PN} = "1"
55
56# glib-networking is needed for SSL, proxies, etc.
57RRECOMMENDS:${PN} = "glib-networking"
58
59BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libsoup/libsoup_3.4.4.bb b/meta/recipes-support/libsoup/libsoup_3.6.5.bb
index 6f7cac4cf8..29e45dfb97 100644
--- a/meta/recipes-support/libsoup/libsoup_3.4.4.bb
+++ b/meta/recipes-support/libsoup/libsoup_3.6.5.bb
@@ -12,12 +12,12 @@ DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl nghttp2"
12SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" 12SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
13 13
14SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz" 14SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz"
15SRC_URI[sha256sum] = "291c67725f36ed90ea43efff25064b69c5a2d1981488477c05c481a3b4b0c5aa" 15SRC_URI[sha256sum] = "6891765aac3e949017945c3eaebd8cc8216df772456dc9f460976fbdb7ada234"
16 16
17PROVIDES = "libsoup-3.0" 17PROVIDES = "libsoup-3.0"
18CVE_PRODUCT = "libsoup" 18CVE_PRODUCT = "libsoup"
19 19
20S = "${WORKDIR}/libsoup-${PV}" 20S = "${UNPACKDIR}/libsoup-${PV}"
21 21
22inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gi-docgen vala 22inherit meson gettext pkgconfig upstream-version-is-even gobject-introspection gi-docgen vala
23 23
diff --git a/meta/recipes-support/libssh2/libssh2/CVE-2023-48795.patch b/meta/recipes-support/libssh2/libssh2/CVE-2023-48795.patch
deleted file mode 100644
index ab0f419ac5..0000000000
--- a/meta/recipes-support/libssh2/libssh2/CVE-2023-48795.patch
+++ /dev/null
@@ -1,466 +0,0 @@
1From d4634630432594b139b3af6b9f254b890c0f275d Mon Sep 17 00:00:00 2001
2From: Michael Buckley <michael@buckleyisms.com>
3Date: Thu, 30 Nov 2023 15:08:02 -0800
4Subject: [PATCH] src: add 'strict KEX' to fix CVE-2023-48795 "Terrapin Attack"
5
6Refs:
7https://terrapin-attack.com/
8https://seclists.org/oss-sec/2023/q4/292
9https://osv.dev/list?ecosystem=&q=CVE-2023-48795
10https://github.com/advisories/GHSA-45x7-px36-x8w8
11https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-48795
12
13Fixes #1290
14Closes #1291
15
16CVE: CVE-2023-48795
17Upstream-Status: Backport
18Signed-off-by: Ross Burton <ross.burton@arm.com>
19---
20 src/kex.c | 63 +++++++++++++++++++++++------------
21 src/libssh2_priv.h | 18 +++++++---
22 src/packet.c | 83 +++++++++++++++++++++++++++++++++++++++++++---
23 src/packet.h | 2 +-
24 src/session.c | 3 ++
25 src/transport.c | 12 ++++++-
26 6 files changed, 149 insertions(+), 32 deletions(-)
27
28diff --git a/src/kex.c b/src/kex.c
29index d4034a0a..b4b748ca 100644
30--- a/src/kex.c
31+++ b/src/kex.c
32@@ -3037,6 +3037,13 @@ kex_method_extension_negotiation = {
33 0,
34 };
35
36+static const LIBSSH2_KEX_METHOD
37+kex_method_strict_client_extension = {
38+ "kex-strict-c-v00@openssh.com",
39+ NULL,
40+ 0,
41+};
42+
43 static const LIBSSH2_KEX_METHOD *libssh2_kex_methods[] = {
44 #if LIBSSH2_ED25519
45 &kex_method_ssh_curve25519_sha256,
46@@ -3055,6 +3062,7 @@ static const LIBSSH2_KEX_METHOD *libssh2_kex_methods[] = {
47 &kex_method_diffie_helman_group1_sha1,
48 &kex_method_diffie_helman_group_exchange_sha1,
49 &kex_method_extension_negotiation,
50+ &kex_method_strict_client_extension,
51 NULL
52 };
53
54@@ -3307,13 +3315,13 @@ static int kexinit(LIBSSH2_SESSION * session)
55 return 0;
56 }
57
58-/* kex_agree_instr
59+/* _libssh2_kex_agree_instr
60 * Kex specific variant of strstr()
61 * Needle must be preceded by BOL or ',', and followed by ',' or EOL
62 */
63-static unsigned char *
64-kex_agree_instr(unsigned char *haystack, size_t haystack_len,
65- const unsigned char *needle, size_t needle_len)
66+unsigned char *
67+_libssh2_kex_agree_instr(unsigned char *haystack, size_t haystack_len,
68+ const unsigned char *needle, size_t needle_len)
69 {
70 unsigned char *s;
71 unsigned char *end_haystack;
72@@ -3398,7 +3406,7 @@ static int kex_agree_hostkey(LIBSSH2_SESSION * session,
73 while(s && *s) {
74 unsigned char *p = (unsigned char *) strchr((char *) s, ',');
75 size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
76- if(kex_agree_instr(hostkey, hostkey_len, s, method_len)) {
77+ if(_libssh2_kex_agree_instr(hostkey, hostkey_len, s, method_len)) {
78 const LIBSSH2_HOSTKEY_METHOD *method =
79 (const LIBSSH2_HOSTKEY_METHOD *)
80 kex_get_method_by_name((char *) s, method_len,
81@@ -3432,9 +3440,9 @@ static int kex_agree_hostkey(LIBSSH2_SESSION * session,
82 }
83
84 while(hostkeyp && (*hostkeyp) && (*hostkeyp)->name) {
85- s = kex_agree_instr(hostkey, hostkey_len,
86- (unsigned char *) (*hostkeyp)->name,
87- strlen((*hostkeyp)->name));
88+ s = _libssh2_kex_agree_instr(hostkey, hostkey_len,
89+ (unsigned char *) (*hostkeyp)->name,
90+ strlen((*hostkeyp)->name));
91 if(s) {
92 /* So far so good, but does it suit our purposes? (Encrypting vs
93 Signing) */
94@@ -3468,6 +3476,12 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex,
95 {
96 const LIBSSH2_KEX_METHOD **kexp = libssh2_kex_methods;
97 unsigned char *s;
98+ const unsigned char *strict =
99+ (unsigned char *)"kex-strict-s-v00@openssh.com";
100+
101+ if(_libssh2_kex_agree_instr(kex, kex_len, strict, 28)) {
102+ session->kex_strict = 1;
103+ }
104
105 if(session->kex_prefs) {
106 s = (unsigned char *) session->kex_prefs;
107@@ -3475,7 +3489,7 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex,
108 while(s && *s) {
109 unsigned char *q, *p = (unsigned char *) strchr((char *) s, ',');
110 size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
111- q = kex_agree_instr(kex, kex_len, s, method_len);
112+ q = _libssh2_kex_agree_instr(kex, kex_len, s, method_len);
113 if(q) {
114 const LIBSSH2_KEX_METHOD *method = (const LIBSSH2_KEX_METHOD *)
115 kex_get_method_by_name((char *) s, method_len,
116@@ -3509,9 +3523,9 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex,
117 }
118
119 while(*kexp && (*kexp)->name) {
120- s = kex_agree_instr(kex, kex_len,
121- (unsigned char *) (*kexp)->name,
122- strlen((*kexp)->name));
123+ s = _libssh2_kex_agree_instr(kex, kex_len,
124+ (unsigned char *) (*kexp)->name,
125+ strlen((*kexp)->name));
126 if(s) {
127 /* We've agreed on a key exchange method,
128 * Can we agree on a hostkey that works with this kex?
129@@ -3555,7 +3569,7 @@ static int kex_agree_crypt(LIBSSH2_SESSION * session,
130 unsigned char *p = (unsigned char *) strchr((char *) s, ',');
131 size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
132
133- if(kex_agree_instr(crypt, crypt_len, s, method_len)) {
134+ if(_libssh2_kex_agree_instr(crypt, crypt_len, s, method_len)) {
135 const LIBSSH2_CRYPT_METHOD *method =
136 (const LIBSSH2_CRYPT_METHOD *)
137 kex_get_method_by_name((char *) s, method_len,
138@@ -3577,9 +3591,9 @@ static int kex_agree_crypt(LIBSSH2_SESSION * session,
139 }
140
141 while(*cryptp && (*cryptp)->name) {
142- s = kex_agree_instr(crypt, crypt_len,
143- (unsigned char *) (*cryptp)->name,
144- strlen((*cryptp)->name));
145+ s = _libssh2_kex_agree_instr(crypt, crypt_len,
146+ (unsigned char *) (*cryptp)->name,
147+ strlen((*cryptp)->name));
148 if(s) {
149 endpoint->crypt = *cryptp;
150 return 0;
151@@ -3619,7 +3633,7 @@ static int kex_agree_mac(LIBSSH2_SESSION * session,
152 unsigned char *p = (unsigned char *) strchr((char *) s, ',');
153 size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
154
155- if(kex_agree_instr(mac, mac_len, s, method_len)) {
156+ if(_libssh2_kex_agree_instr(mac, mac_len, s, method_len)) {
157 const LIBSSH2_MAC_METHOD *method = (const LIBSSH2_MAC_METHOD *)
158 kex_get_method_by_name((char *) s, method_len,
159 (const LIBSSH2_COMMON_METHOD **)
160@@ -3640,8 +3654,9 @@ static int kex_agree_mac(LIBSSH2_SESSION * session,
161 }
162
163 while(*macp && (*macp)->name) {
164- s = kex_agree_instr(mac, mac_len, (unsigned char *) (*macp)->name,
165- strlen((*macp)->name));
166+ s = _libssh2_kex_agree_instr(mac, mac_len,
167+ (unsigned char *) (*macp)->name,
168+ strlen((*macp)->name));
169 if(s) {
170 endpoint->mac = *macp;
171 return 0;
172@@ -3672,7 +3687,7 @@ static int kex_agree_comp(LIBSSH2_SESSION *session,
173 unsigned char *p = (unsigned char *) strchr((char *) s, ',');
174 size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
175
176- if(kex_agree_instr(comp, comp_len, s, method_len)) {
177+ if(_libssh2_kex_agree_instr(comp, comp_len, s, method_len)) {
178 const LIBSSH2_COMP_METHOD *method =
179 (const LIBSSH2_COMP_METHOD *)
180 kex_get_method_by_name((char *) s, method_len,
181@@ -3694,8 +3709,9 @@ static int kex_agree_comp(LIBSSH2_SESSION *session,
182 }
183
184 while(*compp && (*compp)->name) {
185- s = kex_agree_instr(comp, comp_len, (unsigned char *) (*compp)->name,
186- strlen((*compp)->name));
187+ s = _libssh2_kex_agree_instr(comp, comp_len,
188+ (unsigned char *) (*compp)->name,
189+ strlen((*compp)->name));
190 if(s) {
191 endpoint->comp = *compp;
192 return 0;
193@@ -3876,6 +3892,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange,
194 session->local.kexinit = key_state->oldlocal;
195 session->local.kexinit_len = key_state->oldlocal_len;
196 key_state->state = libssh2_NB_state_idle;
197+ session->state &= ~LIBSSH2_STATE_INITIAL_KEX;
198 session->state &= ~LIBSSH2_STATE_KEX_ACTIVE;
199 session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS;
200 return -1;
201@@ -3901,6 +3918,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange,
202 session->local.kexinit = key_state->oldlocal;
203 session->local.kexinit_len = key_state->oldlocal_len;
204 key_state->state = libssh2_NB_state_idle;
205+ session->state &= ~LIBSSH2_STATE_INITIAL_KEX;
206 session->state &= ~LIBSSH2_STATE_KEX_ACTIVE;
207 session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS;
208 return -1;
209@@ -3949,6 +3967,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange,
210 session->remote.kexinit = NULL;
211 }
212
213+ session->state &= ~LIBSSH2_STATE_INITIAL_KEX;
214 session->state &= ~LIBSSH2_STATE_KEX_ACTIVE;
215 session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS;
216
217diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h
218index 82c3afe2..ee1d8b5c 100644
219--- a/src/libssh2_priv.h
220+++ b/src/libssh2_priv.h
221@@ -699,6 +699,9 @@ struct _LIBSSH2_SESSION
222 /* key signing algorithm preferences -- NULL yields server order */
223 char *sign_algo_prefs;
224
225+ /* Whether to use the OpenSSH Strict KEX extension */
226+ int kex_strict;
227+
228 /* (remote as source of data -- packet_read ) */
229 libssh2_endpoint_data remote;
230
231@@ -870,6 +873,7 @@ struct _LIBSSH2_SESSION
232 int fullpacket_macstate;
233 size_t fullpacket_payload_len;
234 int fullpacket_packet_type;
235+ uint32_t fullpacket_required_type;
236
237 /* State variables used in libssh2_sftp_init() */
238 libssh2_nonblocking_states sftpInit_state;
239@@ -910,10 +914,11 @@ struct _LIBSSH2_SESSION
240 };
241
242 /* session.state bits */
243-#define LIBSSH2_STATE_EXCHANGING_KEYS 0x00000001
244-#define LIBSSH2_STATE_NEWKEYS 0x00000002
245-#define LIBSSH2_STATE_AUTHENTICATED 0x00000004
246-#define LIBSSH2_STATE_KEX_ACTIVE 0x00000008
247+#define LIBSSH2_STATE_INITIAL_KEX 0x00000001
248+#define LIBSSH2_STATE_EXCHANGING_KEYS 0x00000002
249+#define LIBSSH2_STATE_NEWKEYS 0x00000004
250+#define LIBSSH2_STATE_AUTHENTICATED 0x00000008
251+#define LIBSSH2_STATE_KEX_ACTIVE 0x00000010
252
253 /* session.flag helpers */
254 #ifdef MSG_NOSIGNAL
255@@ -1144,6 +1149,11 @@ ssize_t _libssh2_send(libssh2_socket_t socket, const void *buffer,
256 int _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange,
257 key_exchange_state_t * state);
258
259+unsigned char *_libssh2_kex_agree_instr(unsigned char *haystack,
260+ size_t haystack_len,
261+ const unsigned char *needle,
262+ size_t needle_len);
263+
264 /* Let crypt.c/hostkey.c expose their method structs */
265 const LIBSSH2_CRYPT_METHOD **libssh2_crypt_methods(void);
266 const LIBSSH2_HOSTKEY_METHOD **libssh2_hostkey_methods(void);
267diff --git a/src/packet.c b/src/packet.c
268index b5b41981..35d4d39e 100644
269--- a/src/packet.c
270+++ b/src/packet.c
271@@ -605,14 +605,13 @@ authagent_exit:
272 * layer when it has received a packet.
273 *
274 * The input pointer 'data' is pointing to allocated data that this function
275- * is asked to deal with so on failure OR success, it must be freed fine.
276- * The only exception is when the return code is LIBSSH2_ERROR_EAGAIN.
277+ * will be freed unless return the code is LIBSSH2_ERROR_EAGAIN.
278 *
279 * This function will always be called with 'datalen' greater than zero.
280 */
281 int
282 _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
283- size_t datalen, int macstate)
284+ size_t datalen, int macstate, uint32_t seq)
285 {
286 int rc = 0;
287 unsigned char *message = NULL;
288@@ -657,6 +656,70 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
289 break;
290 }
291
292+ if(session->state & LIBSSH2_STATE_INITIAL_KEX) {
293+ if(msg == SSH_MSG_KEXINIT) {
294+ if(!session->kex_strict) {
295+ if(datalen < 17) {
296+ LIBSSH2_FREE(session, data);
297+ session->packAdd_state = libssh2_NB_state_idle;
298+ return _libssh2_error(session,
299+ LIBSSH2_ERROR_BUFFER_TOO_SMALL,
300+ "Data too short extracting kex");
301+ }
302+ else {
303+ const unsigned char *strict =
304+ (unsigned char *)"kex-strict-s-v00@openssh.com";
305+ struct string_buf buf;
306+ unsigned char *algs = NULL;
307+ size_t algs_len = 0;
308+
309+ buf.data = (unsigned char *)data;
310+ buf.dataptr = buf.data;
311+ buf.len = datalen;
312+ buf.dataptr += 17; /* advance past type and cookie */
313+
314+ if(_libssh2_get_string(&buf, &algs, &algs_len)) {
315+ LIBSSH2_FREE(session, data);
316+ session->packAdd_state = libssh2_NB_state_idle;
317+ return _libssh2_error(session,
318+ LIBSSH2_ERROR_BUFFER_TOO_SMALL,
319+ "Algs too short");
320+ }
321+
322+ if(algs_len == 0 ||
323+ _libssh2_kex_agree_instr(algs, algs_len, strict, 28)) {
324+ session->kex_strict = 1;
325+ }
326+ }
327+ }
328+
329+ if(session->kex_strict && seq) {
330+ LIBSSH2_FREE(session, data);
331+ session->socket_state = LIBSSH2_SOCKET_DISCONNECTED;
332+ session->packAdd_state = libssh2_NB_state_idle;
333+ libssh2_session_disconnect(session, "strict KEX violation: "
334+ "KEXINIT was not the first packet");
335+
336+ return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT,
337+ "strict KEX violation: "
338+ "KEXINIT was not the first packet");
339+ }
340+ }
341+
342+ if(session->kex_strict && session->fullpacket_required_type &&
343+ session->fullpacket_required_type != msg) {
344+ LIBSSH2_FREE(session, data);
345+ session->socket_state = LIBSSH2_SOCKET_DISCONNECTED;
346+ session->packAdd_state = libssh2_NB_state_idle;
347+ libssh2_session_disconnect(session, "strict KEX violation: "
348+ "unexpected packet type");
349+
350+ return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT,
351+ "strict KEX violation: "
352+ "unexpected packet type");
353+ }
354+ }
355+
356 if(session->packAdd_state == libssh2_NB_state_allocated) {
357 /* A couple exceptions to the packet adding rule: */
358 switch(msg) {
359@@ -1341,6 +1404,15 @@ _libssh2_packet_ask(LIBSSH2_SESSION * session, unsigned char packet_type,
360
361 return 0;
362 }
363+ else if(session->kex_strict &&
364+ (session->state & LIBSSH2_STATE_INITIAL_KEX)) {
365+ libssh2_session_disconnect(session, "strict KEX violation: "
366+ "unexpected packet type");
367+
368+ return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT,
369+ "strict KEX violation: "
370+ "unexpected packet type");
371+ }
372 packet = _libssh2_list_next(&packet->node);
373 }
374 return -1;
375@@ -1402,7 +1474,10 @@ _libssh2_packet_require(LIBSSH2_SESSION * session, unsigned char packet_type,
376 }
377
378 while(session->socket_state == LIBSSH2_SOCKET_CONNECTED) {
379- int ret = _libssh2_transport_read(session);
380+ int ret;
381+ session->fullpacket_required_type = packet_type;
382+ ret = _libssh2_transport_read(session);
383+ session->fullpacket_required_type = 0;
384 if(ret == LIBSSH2_ERROR_EAGAIN)
385 return ret;
386 else if(ret < 0) {
387diff --git a/src/packet.h b/src/packet.h
388index 79018bcf..6ea100a5 100644
389--- a/src/packet.h
390+++ b/src/packet.h
391@@ -71,6 +71,6 @@ int _libssh2_packet_burn(LIBSSH2_SESSION * session,
392 int _libssh2_packet_write(LIBSSH2_SESSION * session, unsigned char *data,
393 unsigned long data_len);
394 int _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
395- size_t datalen, int macstate);
396+ size_t datalen, int macstate, uint32_t seq);
397
398 #endif /* __LIBSSH2_PACKET_H */
399diff --git a/src/session.c b/src/session.c
400index a4d602ba..f4bafb57 100644
401--- a/src/session.c
402+++ b/src/session.c
403@@ -464,6 +464,8 @@ libssh2_session_init_ex(LIBSSH2_ALLOC_FUNC((*my_alloc)),
404 session->abstract = abstract;
405 session->api_timeout = 0; /* timeout-free API by default */
406 session->api_block_mode = 1; /* blocking API by default */
407+ session->state = LIBSSH2_STATE_INITIAL_KEX;
408+ session->fullpacket_required_type = 0;
409 session->packet_read_timeout = LIBSSH2_DEFAULT_READ_TIMEOUT;
410 session->flag.quote_paths = 1; /* default behavior is to quote paths
411 for the scp subsystem */
412@@ -1186,6 +1188,7 @@ libssh2_session_disconnect_ex(LIBSSH2_SESSION *session, int reason,
413 const char *desc, const char *lang)
414 {
415 int rc;
416+ session->state &= ~LIBSSH2_STATE_INITIAL_KEX;
417 session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS;
418 BLOCK_ADJUST(rc, session,
419 session_disconnect(session, reason, desc, lang));
420diff --git a/src/transport.c b/src/transport.c
421index 6d902d33..3b30ff84 100644
422--- a/src/transport.c
423+++ b/src/transport.c
424@@ -187,6 +187,7 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ )
425 struct transportpacket *p = &session->packet;
426 int rc;
427 int compressed;
428+ uint32_t seq = session->remote.seqno;
429
430 if(session->fullpacket_state == libssh2_NB_state_idle) {
431 session->fullpacket_macstate = LIBSSH2_MAC_CONFIRMED;
432@@ -318,7 +319,7 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ )
433 if(session->fullpacket_state == libssh2_NB_state_created) {
434 rc = _libssh2_packet_add(session, p->payload,
435 session->fullpacket_payload_len,
436- session->fullpacket_macstate);
437+ session->fullpacket_macstate, seq);
438 if(rc == LIBSSH2_ERROR_EAGAIN)
439 return rc;
440 if(rc) {
441@@ -329,6 +330,11 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ )
442
443 session->fullpacket_state = libssh2_NB_state_idle;
444
445+ if(session->kex_strict &&
446+ session->fullpacket_packet_type == SSH_MSG_NEWKEYS) {
447+ session->remote.seqno = 0;
448+ }
449+
450 return session->fullpacket_packet_type;
451 }
452
453@@ -1091,6 +1097,10 @@ int _libssh2_transport_send(LIBSSH2_SESSION *session,
454
455 session->local.seqno++;
456
457+ if(session->kex_strict && data[0] == SSH_MSG_NEWKEYS) {
458+ session->local.seqno = 0;
459+ }
460+
461 ret = LIBSSH2_SEND(session, p->outbuf, total_length,
462 LIBSSH2_SOCKET_SEND_FLAGS(session));
463 if(ret < 0)
464--
4652.34.1
466
diff --git a/meta/recipes-support/libssh2/libssh2_1.11.0.bb b/meta/recipes-support/libssh2/libssh2_1.11.1.bb
index 5100e6f7f9..6d2580072b 100644
--- a/meta/recipes-support/libssh2/libssh2_1.11.0.bb
+++ b/meta/recipes-support/libssh2/libssh2_1.11.1.bb
@@ -5,14 +5,13 @@ SECTION = "libs"
5DEPENDS = "zlib" 5DEPENDS = "zlib"
6 6
7LICENSE = "BSD-3-Clause" 7LICENSE = "BSD-3-Clause"
8LIC_FILES_CHKSUM = "file://COPYING;md5=24a33237426720395ebb1dd1349ca225" 8LIC_FILES_CHKSUM = "file://COPYING;md5=2fbf8f834408079bf1fcbadb9814b1bc"
9 9
10SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz \ 10SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz \
11 file://run-ptest \ 11 file://run-ptest \
12 file://CVE-2023-48795.patch \
13 " 12 "
14 13
15SRC_URI[sha256sum] = "3736161e41e2693324deb38c26cfdc3efe6209d634ba4258db1cecff6a5ad461" 14SRC_URI[sha256sum] = "d9ec76cbe34db98eec3539fe2c899d26b0c837cb3eb466a56b0f109cabf658f7"
16 15
17inherit autotools pkgconfig ptest 16inherit autotools pkgconfig ptest
18 17
@@ -31,7 +30,7 @@ PACKAGECONFIG[gcrypt] = "--with-crypto=libgcrypt --with-libgcrypt-prefix=${STAGI
31BBCLASSEXTEND = "native nativesdk" 30BBCLASSEXTEND = "native nativesdk"
32 31
33# required for ptest on documentation 32# required for ptest on documentation
34RDEPENDS:${PN}-ptest = "bash man-db openssh util-linux-col" 33RDEPENDS:${PN}-ptest = "bash man-db openssh"
35RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us" 34RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us"
36 35
37do_compile_ptest() { 36do_compile_ptest() {
diff --git a/meta/recipes-support/libunistring/libunistring_1.2.bb b/meta/recipes-support/libunistring/libunistring_1.3.bb
index 3018dbfdfb..08531acec1 100644
--- a/meta/recipes-support/libunistring/libunistring_1.2.bb
+++ b/meta/recipes-support/libunistring/libunistring_1.3.bb
@@ -21,7 +21,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
21DEPENDS = "gperf-native" 21DEPENDS = "gperf-native"
22 22
23SRC_URI = "${GNU_MIRROR}/libunistring/libunistring-${PV}.tar.gz" 23SRC_URI = "${GNU_MIRROR}/libunistring/libunistring-${PV}.tar.gz"
24SRC_URI[sha256sum] = "fd6d5662fa706487c48349a758b57bc149ce94ec6c30624ec9fdc473ceabbc8e" 24SRC_URI[sha256sum] = "8ea8ccf86c09dd801c8cac19878e804e54f707cf69884371130d20bde68386b7"
25 25
26inherit autotools texinfo 26inherit autotools texinfo
27BBCLASSEXTEND = "native nativesdk" 27BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libunwind/libunwind/0001-src-Gtrace-remove-unguarded-print-calls.patch b/meta/recipes-support/libunwind/libunwind/0001-src-Gtrace-remove-unguarded-print-calls.patch
deleted file mode 100644
index 5840c2b4f6..0000000000
--- a/meta/recipes-support/libunwind/libunwind/0001-src-Gtrace-remove-unguarded-print-calls.patch
+++ /dev/null
@@ -1,52 +0,0 @@
1From 9b27fa9bcd5cadd4c841c42710f41a090377e531 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@arm.com>
3Date: Fri, 24 Mar 2023 16:18:44 +0000
4Subject: [PATCH] src/Gtrace: remove unguarded print() calls
5
6There is a use of printf() without #include stdio.h in src/arm/Gtrace.c,
7which results in a compiler error if clang 16 is used:
8
9src/arm/Gtrace.c:529:7: error: call to undeclared library function
10'printf' with type 'int (const char *, ...)'; ISO C99 and later do not
11support implicit function declarations [-Wimplicit-function-declaration]
12
13Replace the printf("XXX") with a Dprintf, so it doesn't pull stdio in
14unless in a debug build, and reword the message to be clearer.
15
16Also there is another printf("XXX") inside a FreeBSD-specific block in
17the UNW_ARM_FRAME_SIGRETURN case, replace this with a #error as the code
18needs to be implemented.
19
20Fixes #482.
21
22Upstream-Status: Backport [9b27fa9bcd5cadd4c841c42710f41a090377e531]
23Signed-off-by: Ross Burton <ross.burton@arm.com>
24---
25 src/arm/Gtrace.c | 4 ++--
26 1 file changed, 2 insertions(+), 2 deletions(-)
27
28diff --git a/src/arm/Gtrace.c b/src/arm/Gtrace.c
29index 51fc281d..9e0f25af 100644
30--- a/src/arm/Gtrace.c
31+++ b/src/arm/Gtrace.c
32@@ -514,7 +514,7 @@ tdep_trace (unw_cursor_t *cursor, void **buffer, int *size)
33 if (likely(ret >= 0))
34 ACCESS_MEM_FAST(ret, c->validate, d, cfa + LINUX_SC_LR_OFF, lr);
35 #elif defined(__FreeBSD__)
36- printf("XXX\n");
37+ #error implement UNW_ARM_FRAME_SIGRETURN on FreeBSD
38 #endif
39
40 /* Resume stack at signal restoration point. The stack is not
41@@ -526,7 +526,7 @@ tdep_trace (unw_cursor_t *cursor, void **buffer, int *size)
42 break;
43
44 case UNW_ARM_FRAME_SYSCALL:
45- printf("XXX1\n");
46+ Dprintf ("%s: implement me\n", __FUNCTION__);
47 break;
48
49 default:
50--
512.34.1
52
diff --git a/meta/recipes-support/libunwind/libunwind/0001-tests-Garm64-test-sve-signal-check-that-SVE-is-prese.patch b/meta/recipes-support/libunwind/libunwind/0001-tests-Garm64-test-sve-signal-check-that-SVE-is-prese.patch
new file mode 100644
index 0000000000..f7af9a3fce
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind/0001-tests-Garm64-test-sve-signal-check-that-SVE-is-prese.patch
@@ -0,0 +1,73 @@
1From 2f03399911abdd549237fa2db64a4a8311fe67dc Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@arm.com>
3Date: Mon, 15 Jan 2024 16:59:14 +0000
4Subject: [PATCH 1/4] tests/Garm64-test-sve-signal: check that SVE is present
5 before running tests
6
7If the compiler supports -march=armv8-a+sve then those options are used
8to build this test, but all that needs is a sufficiently new compiler.
9
10This then results in the __ARM_FEATURE_SVE check always passing, because
11SVE is explicitly enabled.
12
13However it's perfectly possible for the compiler to support +sve but the
14machine running the code to not, which results with the test crashing
15with "Illegal instruction".
16
17Handle this case by checking HWCAP for SVE support, and skipping the
18test unless we know it is available. This check is Linux-specific at
19present, but the logic is easily extended.
20
21Upstream-Status: Backport
22Signed-off-by: Ross Burton <ross.burton@arm.com>
23---
24 tests/Garm64-test-sve-signal.c | 19 +++++++++++++++++++
25 1 file changed, 19 insertions(+)
26
27diff --git a/tests/Garm64-test-sve-signal.c b/tests/Garm64-test-sve-signal.c
28index 52cb9ac6..cf66b3f1 100644
29--- a/tests/Garm64-test-sve-signal.c
30+++ b/tests/Garm64-test-sve-signal.c
31@@ -9,11 +9,16 @@
32 #include <libunwind.h>
33 #include <signal.h>
34 #include <stdio.h>
35+#include <stdbool.h>
36 #include <stdlib.h>
37 #include <string.h>
38 #include <time.h>
39 #include <unistd.h>
40
41+#if defined(__linux__)
42+#include <sys/auxv.h>
43+#endif
44+
45 int64_t z[100];
46
47 void signal_handler(int signum)
48@@ -96,8 +101,22 @@ int64_t square(svint64_t z0)
49 return res;
50 }
51
52+bool has_sve(void) {
53+#if defined(__linux__)
54+ return (getauxval(AT_HWCAP) & HWCAP_SVE) ? true : false;
55+#else
56+ printf("Cannot determine if SVE is present, assuming it is not\n");
57+ return false;
58+#endif
59+}
60+
61 int main()
62 {
63+ if (!has_sve()) {
64+ printf("SVE not available, skipping\n");
65+ return 77;
66+ }
67+
68 signal(SIGUSR1, signal_handler);
69 for (unsigned int i = 0; i < sizeof(z) / sizeof(z[0]); ++i)
70 z[i] = rand();
71--
722.34.1
73
diff --git a/meta/recipes-support/libunwind/libunwind/mips-coredump-register.patch b/meta/recipes-support/libunwind/libunwind/0002-coredump-use-glibc-or-musl-register-names-as-appropr.patch
index 68adcd1d71..f458bc3c6f 100644
--- a/meta/recipes-support/libunwind/libunwind/mips-coredump-register.patch
+++ b/meta/recipes-support/libunwind/libunwind/0002-coredump-use-glibc-or-musl-register-names-as-appropr.patch
@@ -1,24 +1,27 @@
1From 7750e2a29b084ee033acc82abab410035e220d3f Mon Sep 17 00:00:00 2001 1From 2a5473a31c6b02e9c49d688691e848d6281ffd2e Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@arm.com> 2From: Ross Burton <ross.burton@arm.com>
3Date: Tue, 16 Jan 2024 18:21:26 +0000 3Date: Tue, 16 Jan 2024 18:21:26 +0000
4Subject: [PATCH 1/2] coredump-mips-register 4Subject: [PATCH 2/4] coredump: use glibc or musl register names as appropriate
5 on MIPS
5 6
6glibc and musl have different names for the registers, add a 7glibc has register macros of the form EF_REGx, but musl uses EF_Rx.
7macro that generates the names appropriately.
8 8
9Upstream-Status: Pending 9Handle this by using a macro to use the correct names.
10Signed-off-by: Ross Burton <ross.burton@arm.com> 10
11Closes #708.
11 12
13Upstream-Status: Backport
14Signed-off-by: Ross Burton <ross.burton@arm.com>
12--- 15---
13 src/coredump/_UCD_access_reg_linux.c | 69 ++++++++++++++++------------ 16 src/coredump/_UCD_access_reg_linux.c | 69 ++++++++++++++++------------
14 1 file changed, 39 insertions(+), 30 deletions(-) 17 1 file changed, 39 insertions(+), 30 deletions(-)
15 18
16diff --git a/src/coredump/_UCD_access_reg_linux.c b/src/coredump/_UCD_access_reg_linux.c 19diff --git a/src/coredump/_UCD_access_reg_linux.c b/src/coredump/_UCD_access_reg_linux.c
17index 27eef123..beefdb47 100644 20index 302f7bdf..05100ed6 100644
18--- a/src/coredump/_UCD_access_reg_linux.c 21--- a/src/coredump/_UCD_access_reg_linux.c
19+++ b/src/coredump/_UCD_access_reg_linux.c 22+++ b/src/coredump/_UCD_access_reg_linux.c
20@@ -67,38 +67,47 @@ _UCD_access_reg (unw_addr_space_t as, 23@@ -100,38 +100,47 @@ _UCD_access_reg (unw_addr_space_t as UNUSED,
21 goto badreg; 24 };
22 #else 25 #else
23 #if defined(UNW_TARGET_MIPS) 26 #if defined(UNW_TARGET_MIPS)
24+ 27+
@@ -94,7 +97,7 @@ index 27eef123..beefdb47 100644
94+ [UNW_MIPS_R31] = EF_REG(31), 97+ [UNW_MIPS_R31] = EF_REG(31),
95 [UNW_MIPS_PC] = EF_CP0_EPC, 98 [UNW_MIPS_PC] = EF_CP0_EPC,
96 }; 99 };
97 #elif defined(UNW_TARGET_X86) 100 #elif defined(UNW_TARGET_S390X)
98-- 101--
992.34.1 1022.34.1
100 103
diff --git a/meta/recipes-support/libunwind/libunwind/0005-Handle-musl-on-PPC32.patch b/meta/recipes-support/libunwind/libunwind/0005-Handle-musl-on-PPC32.patch
new file mode 100644
index 0000000000..63d3c85de4
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind/0005-Handle-musl-on-PPC32.patch
@@ -0,0 +1,88 @@
1From 7bd4fbdea43310e52feb57fb5afab6bec798cc99 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@arm.com>
3Date: Wed, 17 Jan 2024 16:28:39 +0000
4Subject: [PATCH 5/5] Handle musl on PPC32
5
6On Linux, glibc and musl disagree over the layout of the ucontext_t
7structure. For more details, see the musl mailing list:
8
9https://www.openwall.com/lists/musl/2018/02/22/1
10
11Add conditionals to handle both the glibc and musl layout of the
12structures.
13
14Closes #709.
15
16Upstream-Status: Submitted [https://github.com/libunwind/libunwind/pull/710]
17Signed-off-by: Ross Burton <ross.burton@arm.com>
18---
19 src/ppc32/Ginit.c | 13 ++++++++++---
20 src/ppc32/ucontext_i.h | 5 +++++
21 2 files changed, 15 insertions(+), 3 deletions(-)
22
23diff --git a/src/ppc32/Ginit.c b/src/ppc32/Ginit.c
24index 9444cbb8..5e94ed8a 100644
25--- a/src/ppc32/Ginit.c
26+++ b/src/ppc32/Ginit.c
27@@ -42,6 +42,13 @@ static struct unw_addr_space local_addr_space;
28
29 unw_addr_space_t unw_local_addr_space = &local_addr_space;
30
31+/* glibc and musl disagree over the layout of this struct */
32+#ifdef __GLIBC__
33+#define _UCONTEXT_UC_REGS(uc) uc->uc_mcontext.uc_regs
34+#else
35+#define _UCONTEXT_UC_REGS(uc) uc->uc_regs
36+#endif
37+
38 static void *
39 uc_addr (ucontext_t *uc, int reg)
40 {
41@@ -49,7 +56,7 @@ uc_addr (ucontext_t *uc, int reg)
42
43 if ((unsigned) (reg - UNW_PPC32_R0) < 32)
44 #if defined(__linux__)
45- addr = &uc->uc_mcontext.uc_regs->gregs[reg - UNW_PPC32_R0];
46+ addr = &_UCONTEXT_UC_REGS(uc)->gregs[reg - UNW_PPC32_R0];
47 #elif defined(__FreeBSD__)
48 addr = &uc->uc_mcontext.mc_gpr[reg - UNW_PPC32_R0];
49 #endif
50@@ -58,7 +65,7 @@ uc_addr (ucontext_t *uc, int reg)
51 if ( ((unsigned) (reg - UNW_PPC32_F0) < 32) &&
52 ((unsigned) (reg - UNW_PPC32_F0) >= 0) )
53 #if defined(__linux__)
54- addr = &uc->uc_mcontext.uc_regs->fpregs.fpregs[reg - UNW_PPC32_F0];
55+ addr = &_UCONTEXT_UC_REGS(uc)->fpregs.fpregs[reg - UNW_PPC32_F0];
56 #elif defined(__FreeBSD__)
57 addr = &uc->uc_mcontext.mc_fpreg[reg - UNW_PPC32_F0];
58 #endif
59@@ -85,7 +92,7 @@ uc_addr (ucontext_t *uc, int reg)
60 return NULL;
61 }
62 #if defined(__linux__)
63- addr = &uc->uc_mcontext.uc_regs->gregs[gregs_idx];
64+ addr = &_UCONTEXT_UC_REGS(uc)->gregs[gregs_idx];
65 #elif defined(__FreeBSD__)
66 addr = &uc->uc_mcontext.mc_gpr[gregs_idx];
67 #endif
68diff --git a/src/ppc32/ucontext_i.h b/src/ppc32/ucontext_i.h
69index ee93c697..cfd8fe0e 100644
70--- a/src/ppc32/ucontext_i.h
71+++ b/src/ppc32/ucontext_i.h
72@@ -44,8 +44,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
73 //#define MQ_IDX 36
74 #define LINK_IDX 36
75
76+#ifdef __GLIBC__
77 #define _UC_MCONTEXT_GPR(x) ( ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[x] - (void *)&dmy_ctxt) )
78 #define _UC_MCONTEXT_FPR(x) ( ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[x] - (void *)&dmy_ctxt) )
79+#else
80+#define _UC_MCONTEXT_GPR(x) ( ((void *)&dmy_ctxt.uc_regs->gregs[x] - (void *)&dmy_ctxt) )
81+#define _UC_MCONTEXT_FPR(x) ( ((void *)&dmy_ctxt.uc_regs->fpregs.fpregs[x] - (void *)&dmy_ctxt) )
82+#endif
83
84 /* These are dummy structures used only for obtaining the offsets of the
85 various structure members. */
86--
872.34.1
88
diff --git a/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch b/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch
deleted file mode 100644
index e58a71b741..0000000000
--- a/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch
+++ /dev/null
@@ -1,247 +0,0 @@
1From 24c751f9d21e892a9833e1b70a696b07872b0f7f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 9 Jul 2016 01:07:53 +0000
4Subject: [PATCH] ppc32: Consider ucontext mismatches between glibc and
5
6 musl
7
8This helps in porting libunwind onto musl based systems
9ptrace.h change is required again an error that surfaces
10with musl
11
12/mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/asm/ptrace.h:31:8: error: redefinition of 'struct pt_regs'
13 struct pt_regs {
14 ^~~~~~~
15In file included from /mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/sys/user.h:11:0,
16 from /mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/sys/procfs.h:9,
17 from ../../git/src/ptrace/_UPT_internal.h:40,
18 from ../../git/src/ptrace/_UPT_reg_offset.c:27:
19/mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/bits/user.h:1:8: note: originally defined here
20 struct pt_regs {
21 ^~~~~~~
22
23Upstream-Status: Pending
24Signed-off-by: Khem Raj <raj.khem@gmail.com>
25
26---
27 src/ppc32/Ginit.c | 6 +-
28 src/ppc32/ucontext_i.h | 158 ++++++++++++++++++-----------------
29 src/ptrace/_UPT_reg_offset.c | 7 ++
30 3 files changed, 92 insertions(+), 79 deletions(-)
31
32diff --git a/src/ppc32/Ginit.c b/src/ppc32/Ginit.c
33index 7b45455..f8d6886 100644
34--- a/src/ppc32/Ginit.c
35+++ b/src/ppc32/Ginit.c
36@@ -48,12 +48,12 @@ uc_addr (ucontext_t *uc, int reg)
37 void *addr;
38
39 if ((unsigned) (reg - UNW_PPC32_R0) < 32)
40- addr = &uc->uc_mcontext.uc_regs->gregs[reg - UNW_PPC32_R0];
41+ addr = &uc->GET_UC_REGS->gregs[reg - UNW_PPC32_R0];
42
43 else
44 if ( ((unsigned) (reg - UNW_PPC32_F0) < 32) &&
45 ((unsigned) (reg - UNW_PPC32_F0) >= 0) )
46- addr = &uc->uc_mcontext.uc_regs->fpregs.fpregs[reg - UNW_PPC32_F0];
47+ addr = &uc->GET_UC_REGS->fpregs.fpregs[reg - UNW_PPC32_F0];
48
49 else
50 {
51@@ -76,7 +76,7 @@ uc_addr (ucontext_t *uc, int reg)
52 default:
53 return NULL;
54 }
55- addr = &uc->uc_mcontext.uc_regs->gregs[gregs_idx];
56+ addr = &uc->GET_UC_REGS->gregs[gregs_idx];
57 }
58 return addr;
59 }
60diff --git a/src/ppc32/ucontext_i.h b/src/ppc32/ucontext_i.h
61index c6ba806..b79f15c 100644
62--- a/src/ppc32/ucontext_i.h
63+++ b/src/ppc32/ucontext_i.h
64@@ -46,83 +46,89 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
65 various structure members. */
66 static ucontext_t dmy_ctxt UNUSED;
67
68-#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[0] - (void *)&dmy_ctxt)
69-#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[1] - (void *)&dmy_ctxt)
70-#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[2] - (void *)&dmy_ctxt)
71-#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[3] - (void *)&dmy_ctxt)
72-#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[4] - (void *)&dmy_ctxt)
73-#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[5] - (void *)&dmy_ctxt)
74-#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[6] - (void *)&dmy_ctxt)
75-#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[7] - (void *)&dmy_ctxt)
76-#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[8] - (void *)&dmy_ctxt)
77-#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[9] - (void *)&dmy_ctxt)
78-#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[10] - (void *)&dmy_ctxt)
79-#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[11] - (void *)&dmy_ctxt)
80-#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[12] - (void *)&dmy_ctxt)
81-#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[13] - (void *)&dmy_ctxt)
82-#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[14] - (void *)&dmy_ctxt)
83-#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[15] - (void *)&dmy_ctxt)
84-#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[16] - (void *)&dmy_ctxt)
85-#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[17] - (void *)&dmy_ctxt)
86-#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[18] - (void *)&dmy_ctxt)
87-#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[19] - (void *)&dmy_ctxt)
88-#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[20] - (void *)&dmy_ctxt)
89-#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[21] - (void *)&dmy_ctxt)
90-#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[22] - (void *)&dmy_ctxt)
91-#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[23] - (void *)&dmy_ctxt)
92-#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[24] - (void *)&dmy_ctxt)
93-#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[25] - (void *)&dmy_ctxt)
94-#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[26] - (void *)&dmy_ctxt)
95-#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[27] - (void *)&dmy_ctxt)
96-#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[28] - (void *)&dmy_ctxt)
97-#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[29] - (void *)&dmy_ctxt)
98-#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[30] - (void *)&dmy_ctxt)
99-#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[31] - (void *)&dmy_ctxt)
100+#ifdef __GLIBC__
101+#define GET_UC_REGS uc_mcontext.uc_regs
102+#else
103+#define GET_UC_REGS uc_regs
104+#endif
105+
106+#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[0] - (void *)&dmy_ctxt)
107+#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[1] - (void *)&dmy_ctxt)
108+#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[2] - (void *)&dmy_ctxt)
109+#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[3] - (void *)&dmy_ctxt)
110+#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[4] - (void *)&dmy_ctxt)
111+#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[5] - (void *)&dmy_ctxt)
112+#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[6] - (void *)&dmy_ctxt)
113+#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[7] - (void *)&dmy_ctxt)
114+#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[8] - (void *)&dmy_ctxt)
115+#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[9] - (void *)&dmy_ctxt)
116+#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[10] - (void *)&dmy_ctxt)
117+#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[11] - (void *)&dmy_ctxt)
118+#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[12] - (void *)&dmy_ctxt)
119+#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[13] - (void *)&dmy_ctxt)
120+#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[14] - (void *)&dmy_ctxt)
121+#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[15] - (void *)&dmy_ctxt)
122+#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[16] - (void *)&dmy_ctxt)
123+#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[17] - (void *)&dmy_ctxt)
124+#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[18] - (void *)&dmy_ctxt)
125+#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[19] - (void *)&dmy_ctxt)
126+#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[20] - (void *)&dmy_ctxt)
127+#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[21] - (void *)&dmy_ctxt)
128+#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[22] - (void *)&dmy_ctxt)
129+#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[23] - (void *)&dmy_ctxt)
130+#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[24] - (void *)&dmy_ctxt)
131+#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[25] - (void *)&dmy_ctxt)
132+#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[26] - (void *)&dmy_ctxt)
133+#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[27] - (void *)&dmy_ctxt)
134+#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[28] - (void *)&dmy_ctxt)
135+#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[29] - (void *)&dmy_ctxt)
136+#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[30] - (void *)&dmy_ctxt)
137+#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[31] - (void *)&dmy_ctxt)
138
139-#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[MSR_IDX] - (void *)&dmy_ctxt)
140-#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
141-#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CTR_IDX] - (void *)&dmy_ctxt)
142-#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[LINK_IDX] - (void *)&dmy_ctxt)
143-#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[XER_IDX] - (void *)&dmy_ctxt)
144-#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CCR_IDX] - (void *)&dmy_ctxt)
145-#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
146-#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
147-#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DAR_IDX] - (void *)&dmy_ctxt)
148-#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
149-#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
150+#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[MSR_IDX] - (void *)&dmy_ctxt)
151+#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
152+#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[CTR_IDX] - (void *)&dmy_ctxt)
153+#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.GET_UC_REGS->gregs[LINK_IDX] - (void *)&dmy_ctxt)
154+#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.GET_UC_REGS->gregs[XER_IDX] - (void *)&dmy_ctxt)
155+#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[CCR_IDX] - (void *)&dmy_ctxt)
156+#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.GET_UC_REGS->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
157+#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.GET_UC_REGS->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
158+#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[DAR_IDX] - (void *)&dmy_ctxt)
159+#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
160+#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.GET_UC_REGS->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
161
162-#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[0] - (void *)&dmy_ctxt)
163-#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[1] - (void *)&dmy_ctxt)
164-#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[2] - (void *)&dmy_ctxt)
165-#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[3] - (void *)&dmy_ctxt)
166-#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[4] - (void *)&dmy_ctxt)
167-#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[5] - (void *)&dmy_ctxt)
168-#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[6] - (void *)&dmy_ctxt)
169-#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[7] - (void *)&dmy_ctxt)
170-#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[8] - (void *)&dmy_ctxt)
171-#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[9] - (void *)&dmy_ctxt)
172-#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[10] - (void *)&dmy_ctxt)
173-#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[11] - (void *)&dmy_ctxt)
174-#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[12] - (void *)&dmy_ctxt)
175-#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[13] - (void *)&dmy_ctxt)
176-#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[14] - (void *)&dmy_ctxt)
177-#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[15] - (void *)&dmy_ctxt)
178-#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[16] - (void *)&dmy_ctxt)
179-#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[17] - (void *)&dmy_ctxt)
180-#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[18] - (void *)&dmy_ctxt)
181-#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[19] - (void *)&dmy_ctxt)
182-#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[20] - (void *)&dmy_ctxt)
183-#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[21] - (void *)&dmy_ctxt)
184-#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[22] - (void *)&dmy_ctxt)
185-#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[23] - (void *)&dmy_ctxt)
186-#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[24] - (void *)&dmy_ctxt)
187-#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[25] - (void *)&dmy_ctxt)
188-#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[26] - (void *)&dmy_ctxt)
189-#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[27] - (void *)&dmy_ctxt)
190-#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[28] - (void *)&dmy_ctxt)
191-#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[29] - (void *)&dmy_ctxt)
192-#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[30] - (void *)&dmy_ctxt)
193-#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[31] - (void *)&dmy_ctxt)
194-#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[32] - (void *)&dmy_ctxt)
195+#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[0] - (void *)&dmy_ctxt)
196+#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[1] - (void *)&dmy_ctxt)
197+#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[2] - (void *)&dmy_ctxt)
198+#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[3] - (void *)&dmy_ctxt)
199+#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[4] - (void *)&dmy_ctxt)
200+#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[5] - (void *)&dmy_ctxt)
201+#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[6] - (void *)&dmy_ctxt)
202+#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[7] - (void *)&dmy_ctxt)
203+#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[8] - (void *)&dmy_ctxt)
204+#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[9] - (void *)&dmy_ctxt)
205+#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[10] - (void *)&dmy_ctxt)
206+#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[11] - (void *)&dmy_ctxt)
207+#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[12] - (void *)&dmy_ctxt)
208+#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[13] - (void *)&dmy_ctxt)
209+#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[14] - (void *)&dmy_ctxt)
210+#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[15] - (void *)&dmy_ctxt)
211+#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[16] - (void *)&dmy_ctxt)
212+#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[17] - (void *)&dmy_ctxt)
213+#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[18] - (void *)&dmy_ctxt)
214+#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[19] - (void *)&dmy_ctxt)
215+#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[20] - (void *)&dmy_ctxt)
216+#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[21] - (void *)&dmy_ctxt)
217+#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[22] - (void *)&dmy_ctxt)
218+#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[23] - (void *)&dmy_ctxt)
219+#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[24] - (void *)&dmy_ctxt)
220+#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[25] - (void *)&dmy_ctxt)
221+#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[26] - (void *)&dmy_ctxt)
222+#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[27] - (void *)&dmy_ctxt)
223+#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[28] - (void *)&dmy_ctxt)
224+#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[29] - (void *)&dmy_ctxt)
225+#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[30] - (void *)&dmy_ctxt)
226+#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[31] - (void *)&dmy_ctxt)
227+#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[32] - (void *)&dmy_ctxt)
228
229 #endif
230diff --git a/src/ptrace/_UPT_reg_offset.c b/src/ptrace/_UPT_reg_offset.c
231index b7dd3b7..bfaf756 100644
232--- a/src/ptrace/_UPT_reg_offset.c
233+++ b/src/ptrace/_UPT_reg_offset.c
234@@ -27,6 +27,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
235 #include "_UPT_internal.h"
236
237 #include <stddef.h>
238+#if !defined(__GLIBC__)
239+# define pt_regs uapi_pt_regs
240+#endif
241+#include <asm/ptrace.h>
242+#if !defined(__GLIBC__)
243+# undef pt_regs
244+#endif
245
246 #ifdef HAVE_ASM_PTRACE_H
247 # include <asm/ptrace.h>
diff --git a/meta/recipes-support/libunwind/libunwind/libatomic.patch b/meta/recipes-support/libunwind/libunwind/libatomic.patch
new file mode 100644
index 0000000000..e783128e2c
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind/libatomic.patch
@@ -0,0 +1,38 @@
1From a331e3a63981427724d2d9cfdcb4a456153299b5 Mon Sep 17 00:00:00 2001
2From: Stephen Webb <swebb@blackberry.com>
3Date: Mon, 18 Mar 2024 10:22:26 -0400
4Subject: [PATCH] configure.ac: detect if -latomic is required
5
6Some OS runtimes require libatomic be linked in separately to get
7standard atomic operations to work. Try to detect that at configure
8time.
9
10Upstream-Status: Submitted [https://github.com/libunwind/libunwind/pull/732/]
11Signed-off-by: Ross Burton <ross.burton@arm.com>
12---
13 configure.ac | 12 ++++++++++++
14 1 file changed, 12 insertions(+)
15
16diff --git a/configure.ac b/configure.ac
17index eaa0ddc..d5f1d4a 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -93,6 +93,18 @@ dnl Checks for library functions.
21 AC_CHECK_FUNCS(dl_iterate_phdr dl_phdr_removals_counter dlmodinfo getunwind \
22 ttrace mincore pipe2 sigaltstack execvpe)
23
24+AC_MSG_CHECKING([if -latomic is required])
25+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
26+ #include <stdatomic.h>
27+ atomic_bool ab_ = 0; atomic_llong al_ = 0;
28+ ]],[[
29+ atomic_load(&ab_); atomic_load(&al_);
30+ ]])],
31+ [use_libatomic=no],
32+ [use_libatomic=yes])
33+AC_MSG_RESULT([$use_libatomic])
34+AS_IF([test "$use_libatomic" = "yes"],[LIBS="-latomic $LIBS"])
35+
36 AC_MSG_CHECKING([if building with AltiVec])
37 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
38 #ifndef __ALTIVEC__
diff --git a/meta/recipes-support/libunwind/libunwind/malloc.patch b/meta/recipes-support/libunwind/libunwind/malloc.patch
new file mode 100644
index 0000000000..cfcef1ccdc
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind/malloc.patch
@@ -0,0 +1,255 @@
1From 8fd3e0c24fdfed64e0642ec0334548f16a2a9390 Mon Sep 17 00:00:00 2001
2From: Stephen Webb <swebb@blackberry.com>
3Date: Wed, 12 Feb 2025 12:08:07 -0500
4Subject: [PATCH] Fix bad prototype for malloc() in test
5
6The unit test Gtest-nomalloc.c had an incorrect prototype for malloc()
7which caused newer compilers to fail compiling for newer C editions.
8
9Corrected the prototype and corrected a few other errors. The unit now
10compiles using GCC with `CFLAGS=-Wall -Wextra -pedantic -C11` with no
11warnings, which is the minimum requirement.
12
13Added the tests/unw_test.h header as a first step to cleaning up some
14unit tests further.
15
16Upstream-Status: Backport [https://github.com/libunwind/libunwind/commit/b67d508]]
17Signed-off-by: Ross Burton <ross.burton@arm.com>
18---
19 tests/Gtest-nomalloc.c | 124 +++++++++++++++++++++++------------------
20 tests/Makefile.am | 2 +-
21 tests/unw_test.h | 47 ++++++++++++++++
22 3 files changed, 117 insertions(+), 56 deletions(-)
23 create mode 100644 tests/unw_test.h
24
25diff --git a/tests/Gtest-nomalloc.c b/tests/Gtest-nomalloc.c
26index 5b97fc7..e770ff6 100644
27--- a/tests/Gtest-nomalloc.c
28+++ b/tests/Gtest-nomalloc.c
29@@ -1,78 +1,92 @@
30-/* libunwind - a platform-independent unwind library
31- Copyright (C) 2009 Google, Inc
32- Contributed by Arun Sharma <arun.sharma@google.com>
33+/**
34+ * @file tests/Gtest-nomalloc.c
35+ *
36+ * Verify that @c malloc() is not called during an unwinding operation.
37+ */
38+/*
39+ * This file is part of libunwind.
40+ * Copyright 2025 Stephen M. Webb <stephen.webb@bregmasoft.ca>
41+ * Copyright (C) 2009 Google, Inc
42+ * Contributed by Arun Sharma <arun.sharma@google.com>
43+ *
44+ * Permission is hereby granted, free of charge, to any person obtaining a copy
45+ * of this software and associated documentation files (the "Software"), to
46+ * deal in the Software without restriction, including without limitation the
47+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
48+ * sell copies of the Software, and to permit persons to whom the Software is
49+ * furnished to do so, subject to the following conditions:
50+ *
51+ * The above copyright notice and this permission notice shall be included in
52+ * all copies or substantial portions of the Software.
53+ *
54+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
55+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
56+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
57+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
58+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
59+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
60+ * IN THE SOFTWARE.
61+ */
62
63-Permission is hereby granted, free of charge, to any person obtaining
64-a copy of this software and associated documentation files (the
65-"Software"), to deal in the Software without restriction, including
66-without limitation the rights to use, copy, modify, merge, publish,
67-distribute, sublicense, and/or sell copies of the Software, and to
68-permit persons to whom the Software is furnished to do so, subject to
69-the following conditions:
70-
71-The above copyright notice and this permission notice shall be
72-included in all copies or substantial portions of the Software.
73-
74-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
75-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
76-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
77-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
78-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
79-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
80-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
81-
82-#include <unistd.h>
83-#include <stdio.h>
84-#include <stdlib.h>
85 #include <dlfcn.h>
86 #include <libunwind.h>
87+#include <stdio.h>
88+#include <stdlib.h>
89+#include <unistd.h>
90
91-#define panic(args...) \
92- { fprintf (stderr, args); exit (-1); }
93+#include "unw_test.h"
94
95-int verbose;
96-int num_errors;
97+int malloc_call_count;
98 int in_unwind;
99
100+/**
101+ * Intercepted malloc() call.
102+ *
103+ * If invoked during unwinding this call will increment the test error count
104+ * and indicate a failure by returning NULL. Otherwise it just calls the real
105+ * malloc().
106+ */
107 void *
108-malloc(size_t s)
109+malloc (size_t sz)
110 {
111- static void * (*func)();
112+ typedef void *(*malloc_t) (size_t);
113
114- if(!func)
115- func = (void *(*)()) dlsym(RTLD_NEXT, "malloc");
116+ static malloc_t real_malloc = NULL;
117+ if (real_malloc == NULL)
118+ {
119+ real_malloc = (malloc_t)(intptr_t)dlsym (RTLD_NEXT, "malloc");
120+ if (real_malloc == NULL)
121+ {
122+ fprintf (stderr, "no malloc() found\n");
123+ exit (UNW_TEST_EXIT_HARD_ERROR); \
124+ }
125+ }
126
127- if (in_unwind) {
128- num_errors++;
129- return NULL;
130- } else {
131- return func(s);
132- }
133+ if (in_unwind)
134+ {
135+ malloc_call_count++;
136+ }
137+ return real_malloc (sz);
138 }
139
140 static void
141 do_backtrace (void)
142 {
143- unw_word_t ip, sp;
144- unw_cursor_t cursor;
145+ unw_cursor_t cursor;
146 unw_context_t uc;
147- int ret;
148+ int ret;
149
150 in_unwind = 1;
151 unw_getcontext (&uc);
152 if (unw_init_local (&cursor, &uc) < 0)
153- panic ("unw_init_local failed!\n");
154+ {
155+ fprintf (stderr, "unw_init_local failed!\n");
156+ exit (UNW_TEST_EXIT_HARD_ERROR); \
157+ }
158
159 do
160 {
161- unw_get_reg (&cursor, UNW_REG_IP, &ip);
162- unw_get_reg (&cursor, UNW_REG_SP, &sp);
163-
164 ret = unw_step (&cursor);
165- if (ret < 0)
166- {
167- ++num_errors;
168- }
169 }
170 while (ret > 0);
171 in_unwind = 0;
172@@ -99,12 +113,12 @@ foo1 (void)
173 int
174 main (void)
175 {
176- foo1();
177+ foo1 ();
178
179- if (num_errors > 0)
180+ if (malloc_call_count > 0)
181 {
182- fprintf (stderr, "FAILURE: detected %d errors\n", num_errors);
183- exit (-1);
184+ fprintf (stderr, "FAILURE: malloc called %d times, expected 0\n", malloc_call_count);
185+ exit (UNW_TEST_EXIT_FAIL);
186 }
187- return 0;
188+ exit (UNW_TEST_EXIT_PASS);
189 }
190diff --git a/tests/Makefile.am b/tests/Makefile.am
191index e2b07bc..844105a 100644
192--- a/tests/Makefile.am
193+++ b/tests/Makefile.am
194@@ -200,7 +200,7 @@ endif
195
196 noinst_PROGRAMS = $(noinst_PROGRAMS_common) $(noinst_PROGRAMS_cdep) \
197 $(noinst_PROGRAMS_arch)
198-noinst_HEADERS = ident.h
199+noinst_HEADERS = ident.h unw_test.h
200
201 do_test_subst = sed -e 's,[@]TESTS[@],$(TESTS),g' \
202 -e 's,[@]XFAIL_TESTS[@],$(XFAIL_TESTS),g' \
203diff --git a/tests/unw_test.h b/tests/unw_test.h
204new file mode 100644
205index 0000000..9ae86dc
206--- /dev/null
207+++ b/tests/unw_test.h
208@@ -0,0 +1,47 @@
209+/**
210+ * @file tests/unw_test.h
211+ *
212+ * Common unit test API for libunwind.
213+ */
214+/*
215+ * This file is part of libunwind.
216+ * Copyright 2025 Stephen M. Webb <stephen.webb@bregmasoft.ca>
217+ *
218+ * Permission is hereby granted, free of charge, to any person obtaining a copy
219+ * of this software and associated documentation files (the "Software"), to
220+ * deal in the Software without restriction, including without limitation the
221+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
222+ * sell copies of the Software, and to permit persons to whom the Software is
223+ * furnished to do so, subject to the following conditions:
224+ *
225+ * The above copyright notice and this permission notice shall be included in
226+ * all copies or substantial portions of the Software.
227+ *
228+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
229+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
230+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
231+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
232+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
233+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
234+ * IN THE SOFTWARE.
235+ */
236+#ifndef LIBUNWIND_UNW_TEST_H
237+#define LIBUNWIND_UNW_TEST_H 1
238+
239+/**
240+ * Exit values for test programs.
241+ * Based on https://www.gnu.org/software/automake/manual/html_node/Scripts_002dbased-Testsuites.html
242+ *
243+ * These are used to interact with the test harness (eg. a TAP-based harness,
244+ * CTest, or automake).
245+ */
246+enum {
247+ UNW_TEST_EXIT_PASS = 0, /* Item under test is a PASS */
248+ UNW_TEST_EXIT_FAIL = 1, /* Item under test is a FAIL */
249+ UNW_TEST_EXIT_BAD_COMMAND = 2, /* Test program is invoked with invalid arguments */
250+ UNW_TEST_EXIT_SKIP = 77, /* Test should be skipped */
251+ UNW_TEST_EXIT_HARD_ERROR = 99 /* Test program itself has failed */
252+};
253+
254+#endif /* LIBUNWIND_UNW_TEST_H */
255+
diff --git a/meta/recipes-support/libunwind/libunwind/mips-byte-order.patch b/meta/recipes-support/libunwind/libunwind/mips-byte-order.patch
index 8848780fd1..3336b79055 100644
--- a/meta/recipes-support/libunwind/libunwind/mips-byte-order.patch
+++ b/meta/recipes-support/libunwind/libunwind/mips-byte-order.patch
@@ -6,7 +6,7 @@ Subject: [PATCH 2/2] byte order
6endian.h on musl/mips can't be included in __ASSEMBLER__ mode, 6endian.h on musl/mips can't be included in __ASSEMBLER__ mode,
7so use the __BYTE_ORDER__ symbol instead. 7so use the __BYTE_ORDER__ symbol instead.
8 8
9Upstream-Status: Pending 9Upstream-Status: Submitted [https://github.com/libunwind/libunwind/pull/816]
10Signed-off-by: Ross Burton <ross.burton@arm.com> 10Signed-off-by: Ross Burton <ross.burton@arm.com>
11--- 11---
12 src/mips/getcontext.S | 3 +-- 12 src/mips/getcontext.S | 3 +--
diff --git a/meta/recipes-support/libunwind/libunwind_1.6.2.bb b/meta/recipes-support/libunwind/libunwind_1.6.2.bb
deleted file mode 100644
index 3208785124..0000000000
--- a/meta/recipes-support/libunwind/libunwind_1.6.2.bb
+++ /dev/null
@@ -1,42 +0,0 @@
1SUMMARY = "Library for obtaining the call-chain of a program"
2DESCRIPTION = "a portable and efficient C programming interface (API) to determine the call-chain of a program"
3HOMEPAGE = "http://www.nongnu.org/libunwind"
4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://COPYING;md5=2d80c8ed4062b8339b715f90fa68cc9f"
6DEPENDS += "libatomic-ops"
7DEPENDS:append:libc-musl = " libucontext"
8
9SRC_URI = "http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PV}.tar.gz \
10 file://mips-byte-order.patch \
11 file://mips-coredump-register.patch \
12 file://0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch \
13 file://0001-src-Gtrace-remove-unguarded-print-calls.patch \
14 "
15
16SRC_URI[sha256sum] = "4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976"
17
18inherit autotools multilib_header
19
20COMPATIBLE_HOST:riscv32 = "null"
21
22PACKAGECONFIG ??= ""
23PACKAGECONFIG[lzma] = "--enable-minidebuginfo,--disable-minidebuginfo,xz"
24PACKAGECONFIG[zlib] = "--enable-zlibdebuginfo,--disable-zlibdebuginfo,zlib"
25PACKAGECONFIG[latexdocs] = "--enable-documentation, --disable-documentation, latex2man-native"
26
27EXTRA_OECONF = "--enable-static"
28
29# http://errors.yoctoproject.org/Errors/Details/20487/
30ARM_INSTRUCTION_SET:armv4 = "arm"
31ARM_INSTRUCTION_SET:armv5 = "arm"
32
33LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
34
35SECURITY_LDFLAGS:append:libc-musl = " -lssp_nonshared"
36CACHED_CONFIGUREVARS:append:libc-musl = " LDFLAGS='${LDFLAGS} -lucontext'"
37
38do_install:append () {
39 oe_multilib_header libunwind.h
40}
41
42BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/libunwind/libunwind_1.8.2.bb b/meta/recipes-support/libunwind/libunwind_1.8.2.bb
new file mode 100644
index 0000000000..6f7168b5df
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind_1.8.2.bb
@@ -0,0 +1,53 @@
1SUMMARY = "Library for obtaining the call-chain of a program"
2DESCRIPTION = "a portable and efficient C programming interface (API) to determine the call-chain of a program"
3HOMEPAGE = "http://www.nongnu.org/libunwind"
4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://COPYING;md5=2d80c8ed4062b8339b715f90fa68cc9f"
6DEPENDS:append:libc-musl = " libucontext"
7
8GITHUB_BASE_URI = "https://github.com/libunwind/libunwind/releases"
9SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
10 file://mips-byte-order.patch \
11 file://0001-tests-Garm64-test-sve-signal-check-that-SVE-is-prese.patch \
12 file://0002-coredump-use-glibc-or-musl-register-names-as-appropr.patch \
13 file://0005-Handle-musl-on-PPC32.patch \
14 file://libatomic.patch \
15 file://malloc.patch \
16 "
17
18SRC_URI[sha256sum] = "7f262f1a1224f437ede0f96a6932b582c8f5421ff207c04e3d9504dfa04c8b82"
19
20inherit autotools multilib_header github-releases
21
22COMPATIBLE_HOST:riscv32 = "null"
23
24PACKAGECONFIG ??= ""
25PACKAGECONFIG[lzma] = "--enable-minidebuginfo,--disable-minidebuginfo,xz"
26PACKAGECONFIG[zlib] = "--enable-zlibdebuginfo,--disable-zlibdebuginfo,zlib"
27PACKAGECONFIG[latexdocs] = "--enable-documentation, --disable-documentation, latex2man-native"
28
29EXTRA_OECONF = "--enable-static --disable-tests"
30
31# http://errors.yoctoproject.org/Errors/Details/20487/
32ARM_INSTRUCTION_SET:armv4 = "arm"
33ARM_INSTRUCTION_SET:armv5 = "arm"
34
35# With qemuarm64 and poky-tiny:
36# ld: .libs/Gtest-trace: hidden symbol `__aarch64_cas8_acq_rel' in libgcc.a(cas_8_4.o) is referenced by DSO
37LDFLAGS_SECTION_REMOVAL = ""
38
39LDFLAGS += "-Wl,-z,relro,-z,now"
40
41SECURITY_LDFLAGS:append:libc-musl = " -lssp_nonshared"
42CACHED_CONFIGUREVARS:append:libc-musl = " LDFLAGS='${LDFLAGS} -lucontext'"
43
44do_install:append () {
45 oe_multilib_header libunwind.h
46}
47
48BBCLASSEXTEND = "native"
49
50# libunwind-1.8.1/src/elfxx.c:205:44: error: passing argument 3 of '_Uppc32_get_func_addr' from incompatible pointer type [-Wincompatible-pointer-types]
51# libunwind-1.8.1/src/elfxx.c:279:52: error: passing argument 3 of '_Uppc32_get_func_addr' from incompatible pointer type [-Wincompatible-pointer-types]
52# and others
53CFLAGS:append:powerpc:libc-musl = " -Wno-error=incompatible-pointer-types"
diff --git a/meta/recipes-support/liburcu/liburcu_0.14.0.bb b/meta/recipes-support/liburcu/liburcu_0.15.3.bb
index f03c990632..fdbd79e016 100644
--- a/meta/recipes-support/liburcu/liburcu_0.14.0.bb
+++ b/meta/recipes-support/liburcu/liburcu_0.15.3.bb
@@ -6,15 +6,16 @@ HOMEPAGE = "http://lttng.org/urcu"
6BUGTRACKER = "http://lttng.org/project/issues" 6BUGTRACKER = "http://lttng.org/project/issues"
7 7
8LICENSE = "LGPL-2.1-or-later & MIT" 8LICENSE = "LGPL-2.1-or-later & MIT"
9LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \ 9LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c2a92498b6e88e276f986877995425b8 \
10 file://include/urcu/urcu.h;beginline=4;endline=32;md5=4de0d68d3a997643715036d2209ae1d9 \ 10 file://include/urcu/urcu.h;beginline=1;endline=18;md5=d35fe8cc2613ca70e0a624ed8bf6fef9 \
11 file://include/urcu/uatomic/x86.h;beginline=4;endline=21;md5=58e50bbd8a2f073bb5500e6554af0d0b" 11 file://include/urcu/uatomic/x86.h;beginline=1;endline=6;md5=358d69272ba7b5f85e29e342430d440c \
12 "
12 13
13SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2" 14SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2"
14 15
15SRC_URI[sha256sum] = "ca43bf261d4d392cff20dfae440836603bf009fce24fdc9b2697d837a2239d4f" 16SRC_URI[sha256sum] = "26687ec84e3e114759454c884a08abeaf79dec09b041895ddf4c45ec150acb6d"
16 17
17S = "${WORKDIR}/userspace-rcu-${PV}" 18S = "${UNPACKDIR}/userspace-rcu-${PV}"
18inherit autotools multilib_header 19inherit autotools multilib_header
19 20
20CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT" 21CPPFLAGS:append:riscv64 = " -pthread -D_REENTRANT"
diff --git a/meta/recipes-support/libusb/libusb1_1.0.27.bb b/meta/recipes-support/libusb/libusb1_1.0.29.bb
index f2431d75c8..2f43ee68b7 100644
--- a/meta/recipes-support/libusb/libusb1_1.0.27.bb
+++ b/meta/recipes-support/libusb/libusb1_1.0.29.bb
@@ -8,6 +8,8 @@ SECTION = "libs"
8LICENSE = "LGPL-2.1-or-later" 8LICENSE = "LGPL-2.1-or-later"
9LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" 9LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
10 10
11CVE_PRODUCT = "libusb"
12
11BBCLASSEXTEND = "native nativesdk" 13BBCLASSEXTEND = "native nativesdk"
12 14
13SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \ 15SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \
@@ -17,9 +19,9 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \
17GITHUB_BASE_URI = "https://github.com/libusb/libusb/releases" 19GITHUB_BASE_URI = "https://github.com/libusb/libusb/releases"
18UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$" 20UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
19 21
20SRC_URI[sha256sum] = "ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575" 22SRC_URI[sha256sum] = "5977fc950f8d1395ccea9bd48c06b3f808fd3c2c961b44b0c2e6e29fc3a70a85"
21 23
22S = "${WORKDIR}/libusb-${PV}" 24S = "${UNPACKDIR}/libusb-${PV}"
23 25
24inherit autotools pkgconfig ptest github-releases 26inherit autotools pkgconfig ptest github-releases
25 27
diff --git a/meta/recipes-support/libxslt/libxslt_1.1.39.bb b/meta/recipes-support/libxslt/libxslt_1.1.43.bb
index 2cc0c84bec..c0699cbce8 100644
--- a/meta/recipes-support/libxslt/libxslt_1.1.39.bb
+++ b/meta/recipes-support/libxslt/libxslt_1.1.43.bb
@@ -15,13 +15,13 @@ DEPENDS = "libxml2"
15 15
16SRC_URI = "https://download.gnome.org/sources/libxslt/1.1/libxslt-${PV}.tar.xz" 16SRC_URI = "https://download.gnome.org/sources/libxslt/1.1/libxslt-${PV}.tar.xz"
17 17
18SRC_URI[sha256sum] = "2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0" 18SRC_URI[sha256sum] = "5a3d6b383ca5afc235b171118e90f5ff6aa27e9fea3303065231a6d403f0183a"
19 19
20UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar" 20UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar"
21 21
22CVE_STATUS[CVE-2022-29824] = "not-applicable-config: Static linking to libxml2 is not enabled." 22CVE_STATUS[CVE-2022-29824] = "not-applicable-config: Static linking to libxml2 is not enabled."
23 23
24S = "${WORKDIR}/libxslt-${PV}" 24S = "${UNPACKDIR}/libxslt-${PV}"
25 25
26BINCONFIG = "${bindir}/xslt-config" 26BINCONFIG = "${bindir}/xslt-config"
27 27
@@ -37,7 +37,7 @@ do_configure:prepend () {
37 touch ${S}/doc/xsltproc.1 37 touch ${S}/doc/xsltproc.1
38} 38}
39 39
40EXTRA_OECONF = "--without-python --without-debug --without-mem-debug --without-crypto" 40EXTRA_OECONF = "--without-python --without-debug --without-crypto"
41# older versions of this recipe had ${PN}-utils 41# older versions of this recipe had ${PN}-utils
42RPROVIDES:${PN}-bin += "${PN}-utils" 42RPROVIDES:${PN}-bin += "${PN}-utils"
43RCONFLICTS:${PN}-bin += "${PN}-utils" 43RCONFLICTS:${PN}-bin += "${PN}-utils"
diff --git a/meta/recipes-support/libyaml/libyaml_0.2.5.bb b/meta/recipes-support/libyaml/libyaml_0.2.5.bb
index 4cb5717ece..9b77e7cfc8 100644
--- a/meta/recipes-support/libyaml/libyaml_0.2.5.bb
+++ b/meta/recipes-support/libyaml/libyaml_0.2.5.bb
@@ -8,14 +8,17 @@ LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://License;md5=7bbd28caa69f81f5cd5f48647236663d" 8LIC_FILES_CHKSUM = "file://License;md5=7bbd28caa69f81f5cd5f48647236663d"
9 9
10SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz" 10SRC_URI = "https://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz"
11SRC_URI[md5sum] = "bb15429d8fb787e7d3f1c83ae129a999"
12SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4" 11SRC_URI[sha256sum] = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4"
13 12
14S = "${WORKDIR}/yaml-${PV}" 13S = "${UNPACKDIR}/yaml-${PV}"
15 14
16inherit autotools 15inherit autotools
17 16
18DISABLE_STATIC:class-nativesdk = "" 17DISABLE_STATIC:class-nativesdk = ""
19DISABLE_STATIC:class-native = "" 18DISABLE_STATIC:class-native = ""
20 19
20CVE_STATUS[CVE-2024-35325] = "upstream-wontfix: Upstream thinks this is a misuse (or wrong use) of the libyaml API - https://github.com/yaml/libyaml/issues/303"
21CVE_STATUS[CVE-2024-35326] = "upstream-wontfix: Upstream thinks there is no working code that is exploitable - https://github.com/yaml/libyaml/issues/302"
22CVE_STATUS[CVE-2024-35328] = "upstream-wontfix: Upstream thinks there is no working code that is exploitable - https://github.com/yaml/libyaml/issues/302"
23
21BBCLASSEXTEND = "native nativesdk" 24BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/lz4/lz4/reproducibility.patch b/meta/recipes-support/lz4/lz4/reproducibility.patch
new file mode 100644
index 0000000000..c138986da8
--- /dev/null
+++ b/meta/recipes-support/lz4/lz4/reproducibility.patch
@@ -0,0 +1,33 @@
1lib/Makefile: Fix static library reproducibility
2
3The static library contents varies depending of the order of the object files on disk meaning
4it isn't reproducible.
5
6To avoid this, use the SRCFILES values which are already sorted, mapped to the object names
7instead.
8
9
10Upstream-Status: Submitted [https://github.com/lz4/lz4/pull/1497]
11Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
12
13Index: git/lib/Makefile
14===================================================================
15--- git.orig/lib/Makefile
16+++ git/lib/Makefile
17@@ -55,6 +55,7 @@ CFLAGS = $(DEBUGFLAGS) $(USERCFLAGS)
18 ALLFLAGS = $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
19
20 SRCFILES := $(sort $(wildcard *.c))
21+OBJFILES = $(SRCFILES:.c=.o)
22
23 include ../Makefile.inc
24
25@@ -102,7 +103,7 @@ liblz4.a: $(SRCFILES)
26 ifeq ($(BUILD_STATIC),yes) # can be disabled on command line
27 @echo compiling static library
28 $(COMPILE.c) $^
29- $(AR) rcs $@ *.o
30+ $(AR) rcs $@ $(OBJFILES)
31 endif
32
33 ifeq ($(WINBASED),yes)
diff --git a/meta/recipes-support/lz4/files/run-ptest b/meta/recipes-support/lz4/lz4/run-ptest
index f4a46a4f2c..f4a46a4f2c 100644
--- a/meta/recipes-support/lz4/files/run-ptest
+++ b/meta/recipes-support/lz4/lz4/run-ptest
diff --git a/meta/recipes-support/lz4/lz4_1.9.4.bb b/meta/recipes-support/lz4/lz4_1.10.0.bb
index 51a854d44a..9bd3cfc27b 100644
--- a/meta/recipes-support/lz4/lz4_1.9.4.bb
+++ b/meta/recipes-support/lz4/lz4_1.10.0.bb
@@ -2,28 +2,26 @@ SUMMARY = "Extremely Fast Compression algorithm"
2DESCRIPTION = "LZ4 is a very fast lossless compression algorithm, providing compression speed at 400 MB/s per core, scalable with multi-cores CPU. It also features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems." 2DESCRIPTION = "LZ4 is a very fast lossless compression algorithm, providing compression speed at 400 MB/s per core, scalable with multi-cores CPU. It also features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems."
3HOMEPAGE = "https://github.com/lz4/lz4" 3HOMEPAGE = "https://github.com/lz4/lz4"
4 4
5LICENSE = "BSD-2-Clause | GPL-2.0-only" 5LICENSE = "BSD-2-Clause | GPL-2.0-or-later"
6LIC_FILES_CHKSUM = "file://lib/LICENSE;md5=5cd5f851b52ec832b10eedb3f01f885a \ 6LIC_FILES_CHKSUM = "file://lib/LICENSE;md5=5cd5f851b52ec832b10eedb3f01f885a \
7 file://programs/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 7 file://programs/COPYING;md5=492daf447d6db0e5eb344a7922e7ec25 \
8 file://LICENSE;md5=c5cc3cd6f9274b4d32988096df9c3ec3 \ 8 file://LICENSE;md5=c111c47e301c2ffe8776729b40b44477 \
9 " 9 "
10 10
11PE = "1" 11PE = "1"
12 12
13SRCREV = "5ff839680134437dbf4678f3d0c7b371d84f4964" 13SRCREV = "ebb370ca83af193212df4dcbadcc5d87bc0de2f0"
14 14
15SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \ 15SRC_URI = "git://github.com/lz4/lz4.git;branch=release;protocol=https \
16 file://run-ptest \ 16 file://reproducibility.patch \
17 " 17 file://run-ptest"
18UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" 18UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
19 19
20S = "${WORKDIR}/git"
21
22inherit ptest 20inherit ptest
23 21
24CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version." 22CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version."
25 23
26EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' CFLAGS='${CFLAGS}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir} BUILD_STATIC=no" 24EXTRA_OEMAKE = "DESTDIR=${D} BUILD_STATIC=no"
27 25
28do_install() { 26do_install() {
29 oe_runmake install 27 oe_runmake install
diff --git a/meta/recipes-support/lzo/lzo_2.10.bb b/meta/recipes-support/lzo/lzo_2.10.bb
index 195c2f2939..dbe789b4e6 100644
--- a/meta/recipes-support/lzo/lzo_2.10.bb
+++ b/meta/recipes-support/lzo/lzo_2.10.bb
@@ -13,7 +13,6 @@ SRC_URI = "http://www.oberhumer.com/opensource/lzo/download/lzo-${PV}.tar.gz \
13 file://run-ptest \ 13 file://run-ptest \
14 " 14 "
15 15
16SRC_URI[md5sum] = "39d3f3f9c55c87b1e5d6888e1420f4b5"
17SRC_URI[sha256sum] = "c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072" 16SRC_URI[sha256sum] = "c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072"
18 17
19inherit autotools ptest 18inherit autotools ptest
@@ -31,5 +30,4 @@ do_install_ptest() {
31 done 30 done
32} 31}
33 32
34
35BBCLASSEXTEND = "native nativesdk" 33BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/lzop/lzop_1.04.bb b/meta/recipes-support/lzop/lzop_1.04.bb
index d9b3524b67..c32aa53422 100644
--- a/meta/recipes-support/lzop/lzop_1.04.bb
+++ b/meta/recipes-support/lzop/lzop_1.04.bb
@@ -15,13 +15,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
15SRC_URI = "http://www.lzop.org/download/${BP}.tar.gz \ 15SRC_URI = "http://www.lzop.org/download/${BP}.tar.gz \
16 file://acinclude.m4 \ 16 file://acinclude.m4 \
17 " 17 "
18SRC_URI[md5sum] = "271eb10fde77a0a96b9cbf745e719ddf"
19SRC_URI[sha256sum] = "7e72b62a8a60aff5200a047eea0773a8fb205caf7acbe1774d95147f305a2f41" 18SRC_URI[sha256sum] = "7e72b62a8a60aff5200a047eea0773a8fb205caf7acbe1774d95147f305a2f41"
20 19
21inherit autotools 20inherit autotools
22 21
23do_configure:prepend () { 22do_configure:prepend () {
24 install -Dm 0644 ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4 23 install -Dm 0644 ${UNPACKDIR}/acinclude.m4 ${S}/acinclude.m4
25} 24}
26 25
27BBCLASSEXTEND = "native nativesdk" 26BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/mpfr/mpfr_4.2.1.bb b/meta/recipes-support/mpfr/mpfr_4.2.2.bb
index a2067e1036..88cef0cfe1 100644
--- a/meta/recipes-support/mpfr/mpfr_4.2.1.bb
+++ b/meta/recipes-support/mpfr/mpfr_4.2.2.bb
@@ -9,10 +9,12 @@ inherit autotools texinfo
9LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ 9LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
10 file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \ 10 file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \
11 " 11 "
12CVE_PRODUCT = "gnu_mpfr"
13
12DEPENDS = "gmp autoconf-archive-native" 14DEPENDS = "gmp autoconf-archive-native"
13 15
14SRC_URI = "https://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz" 16SRC_URI = "https://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz"
15SRC_URI[sha256sum] = "277807353a6726978996945af13e52829e3abd7a9a5b7fb2793894e18f1fcbb2" 17SRC_URI[sha256sum] = "b67ba0383ef7e8a8563734e2e889ef5ec3c3b898a01d00fa0a6869ad81c6ce01"
16 18
17UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/" 19UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/"
18 20
diff --git a/meta/recipes-support/nettle/nettle/0001-getopt-Fix-getopt-getenv-signatures-in-declarations.patch b/meta/recipes-support/nettle/nettle/0001-getopt-Fix-getopt-getenv-signatures-in-declarations.patch
new file mode 100644
index 0000000000..c6f75e9150
--- /dev/null
+++ b/meta/recipes-support/nettle/nettle/0001-getopt-Fix-getopt-getenv-signatures-in-declarations.patch
@@ -0,0 +1,44 @@
1From 20eb61eded3bf2ef03e1f37c8c1535b9c246d0f7 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 22 Mar 2025 13:48:29 -0700
4Subject: [PATCH] getopt: Fix getopt/getenv signatures in declarations
5
6GCC-15 complains about this when trying to build on musl
7
8| ../nettle-3.10.1/getopt.c:139:14: error: conflicting types for 'getenv'; have 'char *(void)'
9| 139 | extern char *getenv ();
10| | ^~~~~~
11
12Upstream-Status: Submitted [https://lists.lysator.liu.se/mailman/hyperkitty/list/nettle-bugs@lists.lysator.liu.se/thread/R6BDHRO44KSRDAOZQAREYICI2RG5PVNC/]
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 getopt.c | 2 +-
16 getopt.h | 2 +-
17 2 files changed, 2 insertions(+), 2 deletions(-)
18
19diff --git a/getopt.c b/getopt.c
20index 9d29de7..5b89302 100644
21--- a/getopt.c
22+++ b/getopt.c
23@@ -136,7 +136,7 @@ static struct _getopt_data getopt_data;
24 whose names are inconsistent. */
25
26 #ifndef getenv
27-extern char *getenv ();
28+extern char *getenv (const char *);
29 #endif
30
31 #endif /* not __GNU_LIBRARY__ */
32diff --git a/getopt.h b/getopt.h
33index da1a01f..ab50792 100644
34--- a/getopt.h
35+++ b/getopt.h
36@@ -166,7 +166,7 @@ extern int __posix_getopt (int ___argc, char *const *___argv,
37 # endif
38 # endif
39 #else /* not __GNU_LIBRARY__ */
40-extern int getopt ();
41+extern int getopt(int, char * const [], const char *);
42 #endif /* __GNU_LIBRARY__ */
43
44 #ifndef __need_getopt
diff --git a/meta/recipes-support/nettle/nettle/Add-target-to-only-build-tests-not-run-them.patch b/meta/recipes-support/nettle/nettle/Add-target-to-only-build-tests-not-run-them.patch
index e3f5c6de7d..ee3e74c43b 100644
--- a/meta/recipes-support/nettle/nettle/Add-target-to-only-build-tests-not-run-them.patch
+++ b/meta/recipes-support/nettle/nettle/Add-target-to-only-build-tests-not-run-them.patch
@@ -1,4 +1,7 @@
1Add target to only build tests (not run them) 1From 3ea3eaf5bda21529fc8a8da3d8b07ebc3875ba7e Mon Sep 17 00:00:00 2001
2From: Trevor Gamblin <tgamblin@baylibre.com>
3Date: Fri, 2 Aug 2024 09:48:43 -0400
4Subject: [PATCH] Makefile.in: Add target to only build tests (not run them)
2 5
3Not sending upstream as this is only a start of a solution to 6Not sending upstream as this is only a start of a solution to
4installable tests: It's useful for us already as is. 7installable tests: It's useful for us already as is.
@@ -8,16 +11,20 @@ Upstream-Status: Inappropriate [not a complete solution]
8Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> 11Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
9Refactored for 3.4 12Refactored for 3.4
10Signed-off-by: Armin Kuster <akuster@mvista.com> 13Signed-off-by: Armin Kuster <akuster@mvista.com>
14
15Refactor for 3.10, including turning it into an mbox for easier use.
16
17Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
11--- 18---
12 Makefile.in | 3 +++ 19 Makefile.in | 3 +++
13 testsuite/Makefile.in | 2 ++ 20 testsuite/Makefile.in | 2 ++
14 2 files changed, 5 insertions(+) 21 2 files changed, 5 insertions(+)
15 22
16diff --git a/Makefile.in b/Makefile.in 23diff --git a/Makefile.in b/Makefile.in
17index e5ccfc7..15c9275 100644 24index 71ad761..0f239f4 100644
18--- a/Makefile.in 25--- a/Makefile.in
19+++ b/Makefile.in 26+++ b/Makefile.in
20@@ -52,6 +52,9 @@ clean distclean mostlyclean maintainer-clean tags: 27@@ -53,6 +53,9 @@ clean distclean mostlyclean maintainer-clean tags:
21 echo "Making $@ in $$d" ; (cd $$d && $(MAKE) $@); done 28 echo "Making $@ in $$d" ; (cd $$d && $(MAKE) $@); done
22 $(MAKE) $@-here 29 $(MAKE) $@-here
23 30
@@ -28,18 +35,15 @@ index e5ccfc7..15c9275 100644
28 true 35 true
29 36
30diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in 37diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in
31index 3f5e5f6..8fd68a3 100644 38index 0699fa0..8ac9983 100644
32--- a/testsuite/Makefile.in 39--- a/testsuite/Makefile.in
33+++ b/testsuite/Makefile.in 40+++ b/testsuite/Makefile.in
34@@ -122,6 +122,8 @@ $(TARGETS) $(EXTRA_TARGETS): testutils.$(OBJEXT) ../nettle-internal.$(OBJEXT) \ 41@@ -137,6 +137,8 @@ $(TARGETS) $(EXTRA_TARGETS): testutils.$(OBJEXT) ../non-nettle.$(OBJEXT) \
35 # data. 42 # data.
36 VALGRIND = valgrind --error-exitcode=1 --leak-check=full --show-reachable=yes @IF_ASM@ --partial-loads-ok=yes 43 VALGRIND = valgrind --error-exitcode=1 --leak-check=full --show-reachable=yes @IF_ASM@ --partial-loads-ok=yes
37 44
38+buildtest: $(TS_ALL) 45+buildtest: $(TS_ALL)
39+ 46+
40 check: $(TS_ALL) 47 check: $(TS_ALL) $(TS_ALL:sc-%=%)
41 TEST_SHLIB_DIR="$(TEST_SHLIB_DIR)" \ 48 TEST_SHLIB_DIR="$(TEST_SHLIB_DIR)" \
42 srcdir="$(srcdir)" \ 49 srcdir="$(srcdir)" \
43--
442.17.1
45
diff --git a/meta/recipes-support/nettle/nettle/check-header-files-of-openssl-only-if-enable_.patch b/meta/recipes-support/nettle/nettle/check-header-files-of-openssl-only-if-enable_.patch
index d5f266681e..89b5c7bec4 100644
--- a/meta/recipes-support/nettle/nettle/check-header-files-of-openssl-only-if-enable_.patch
+++ b/meta/recipes-support/nettle/nettle/check-header-files-of-openssl-only-if-enable_.patch
@@ -1,4 +1,4 @@
1From ffee6b5f6204a0210f717968ec6ce514d70acca1 Mon Sep 17 00:00:00 2001 1From ec2ca7e505e6bfe1fff2a7d6e6bb39b60b93e19a Mon Sep 17 00:00:00 2001
2From: Haiqing Bai <Haiqing.Bai@windriver.com> 2From: Haiqing Bai <Haiqing.Bai@windriver.com>
3Date: Fri, 9 Dec 2016 15:23:17 +0800 3Date: Fri, 9 Dec 2016 15:23:17 +0800
4Subject: [PATCH] nettle: check header files of openssl only if 4Subject: [PATCH] nettle: check header files of openssl only if
@@ -15,19 +15,26 @@ refactored for 3.4. pending not in as of 3.4
15 15
16Signed-off-by: Armin Kuster <akuster@mvista.com> 16Signed-off-by: Armin Kuster <akuster@mvista.com>
17 17
18Index: nettle-3.4/configure.ac 18Refactor for 3.10.
19=================================================================== 19
20--- nettle-3.4.orig/configure.ac 20Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
21+++ nettle-3.4/configure.ac 21---
22@@ -185,9 +185,11 @@ AC_HEADER_TIME 22 configure.ac | 8 +++++---
23 1 file changed, 5 insertions(+), 3 deletions(-)
24
25diff --git a/configure.ac b/configure.ac
26index 7c003bb..779f7ff 100644
27--- a/configure.ac
28+++ b/configure.ac
29@@ -197,9 +197,11 @@ AC_TYPE_SIZE_T
23 AC_CHECK_SIZEOF(long) 30 AC_CHECK_SIZEOF(long)
24 AC_CHECK_SIZEOF(size_t) 31 AC_CHECK_SIZEOF(size_t)
25 32
26-AC_CHECK_HEADERS([openssl/evp.h openssl/ecdsa.h],, 33-AC_CHECK_HEADERS([openssl/evp.h openssl/ec.h openssl/rsa.h],,
27-[enable_openssl=no 34-[enable_openssl=no
28- break]) 35- break])
29+if test "x$enable_openssl" = "xyes"; then 36+if test "x$enable_openssl" = "xyes"; then
30+ AC_CHECK_HEADERS([openssl/evp.h openssl/ecdsa.h],, 37+ AC_CHECK_HEADERS([openssl/evp.h openssl/ec.h openssl/rsa.h],,
31+ [enable_openssl=no 38+ [enable_openssl=no
32+ break]) 39+ break])
33+fi 40+fi
diff --git a/meta/recipes-support/nettle/nettle_3.9.1.bb b/meta/recipes-support/nettle/nettle_3.10.1.bb
index 396708cf87..267a6ed449 100644
--- a/meta/recipes-support/nettle/nettle_3.9.1.bb
+++ b/meta/recipes-support/nettle/nettle_3.10.1.bb
@@ -18,9 +18,10 @@ SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
18 file://Add-target-to-only-build-tests-not-run-them.patch \ 18 file://Add-target-to-only-build-tests-not-run-them.patch \
19 file://run-ptest \ 19 file://run-ptest \
20 file://check-header-files-of-openssl-only-if-enable_.patch \ 20 file://check-header-files-of-openssl-only-if-enable_.patch \
21 file://0001-getopt-Fix-getopt-getenv-signatures-in-declarations.patch \
21 " 22 "
22 23
23SRC_URI[sha256sum] = "ccfeff981b0ca71bbd6fbcb054f407c60ffb644389a5be80d6716d5b550c6ce3" 24SRC_URI[sha256sum] = "b0fcdd7fc0cdea6e80dcf1dd85ba794af0d5b4a57e26397eee3bc193272d9132"
24 25
25UPSTREAM_CHECK_REGEX = "nettle-(?P<pver>\d+(\.\d+)+)\.tar" 26UPSTREAM_CHECK_REGEX = "nettle-(?P<pver>\d+(\.\d+)+)\.tar"
26 27
@@ -46,6 +47,7 @@ do_install_ptest() {
46 install ${B}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ 47 install ${B}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/
47 install ${S}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/ 48 install ${S}/testsuite/*-test ${D}${PTEST_PATH}/testsuite/
48 install ${S}/testsuite/gold-bug.txt ${D}${PTEST_PATH}/testsuite/ 49 install ${S}/testsuite/gold-bug.txt ${D}${PTEST_PATH}/testsuite/
50 install ${S}/testsuite/sc-valgrind.sh ${D}${PTEST_PATH}/testsuite/
49 51
50 # Install a symlink for dlopen-test 52 # Install a symlink for dlopen-test
51 ln -sr ${D}${libdir}/libnettle.so.*.* ${D}${PTEST_PATH}/libnettle.so 53 ln -sr ${D}${libdir}/libnettle.so.*.* ${D}${PTEST_PATH}/libnettle.so
diff --git a/meta/recipes-support/nghttp2/nghttp2_1.61.0.bb b/meta/recipes-support/nghttp2/nghttp2_1.65.0.bb
index ad85576dcb..008935f165 100644
--- a/meta/recipes-support/nghttp2/nghttp2_1.61.0.bb
+++ b/meta/recipes-support/nghttp2/nghttp2_1.65.0.bb
@@ -5,7 +5,7 @@ LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec" 5LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec"
6 6
7SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/nghttp2-${PV}.tar.xz" 7SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/nghttp2-${PV}.tar.xz"
8SRC_URI[sha256sum] = "c0e660175b9dc429f11d25b9507a834fb752eea9135ab420bb7cb7e9dbcc9654" 8SRC_URI[sha256sum] = "f1b9df5f02e9942b31247e3d415483553bc4ac501c87aa39340b6d19c92a9331"
9 9
10inherit cmake manpages python3native github-releases 10inherit cmake manpages python3native github-releases
11PACKAGECONFIG[manpages] = "" 11PACKAGECONFIG[manpages] = ""
diff --git a/meta/recipes-support/npth/npth/musl-fix.patch b/meta/recipes-support/npth/npth/musl-fix.patch
deleted file mode 100644
index fabe78b14c..0000000000
--- a/meta/recipes-support/npth/npth/musl-fix.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From 417abd56fd7bf45cd4948414050615cb1ad59134 Mon Sep 17 00:00:00 2001
2From: NIIBE Yutaka <gniibe@fsij.org>
3Date: Fri, 1 Mar 2024 13:53:52 +0900
4Subject: [PATCH] Fix INSERT_EXPOSE_RWLOCK_API for musl C library.
5
6* configure.ac: Add a case for musl system.
7
8Upstream-Status: Backport [https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=commit;h=417abd56fd7bf45cd4948414050615cb1ad59134]
9Signed-off-by: Alexander Kanavin <alex@linutronix.de>
10--
11
12GnuPG-bug-id: 5664
13Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
14---
15 configure.ac | 5 ++++-
16 1 file changed, 4 insertions(+), 1 deletion(-)
17
18diff --git a/configure.ac b/configure.ac
19index c1091b1..576a26e 100644
20--- a/configure.ac
21+++ b/configure.ac
22@@ -381,7 +381,10 @@ fi
23 AC_SUBST(INSERT_NO_RWLOCK)
24
25 case "${host}" in
26- *-*-linux*|*-*-gnu*)
27+ *-*-linux-musl*)
28+ INSERT_EXPOSE_RWLOCK_API="1"
29+ ;;
30+ *-*-linux-gnu*|*-*-gnu*)
31 INSERT_EXPOSE_RWLOCK_API="defined(__USE_UNIX98) || defined(__USE_XOPEN2K)"
32 ;;
33 *)
34--
352.30.2
36
37
diff --git a/meta/recipes-support/npth/npth/pkgconfig.patch b/meta/recipes-support/npth/npth/pkgconfig.patch
deleted file mode 100644
index e736921b43..0000000000
--- a/meta/recipes-support/npth/npth/pkgconfig.patch
+++ /dev/null
@@ -1,59 +0,0 @@
1From ff19a9648f1c7d93087e2c33ca64bb881d53ea5a Mon Sep 17 00:00:00 2001
2From: Saul Wold <sgw@linux.intel.com>
3Date: Mon, 10 Nov 2014 13:59:03 -0800
4Subject: [PATCH] Added npth pkgconfig file
5
6Upstream-Status: Pending
7
8Signed-off-by: Saul Wold <sgw@linux.intel.com>
9---
10 configure.ac | 1 +
11 src/Makefile.am | 4 +++-
12 src/npth.pc.in | 10 ++++++++++
13 3 files changed, 14 insertions(+), 1 deletion(-)
14 create mode 100644 src/npth.pc.in
15
16diff --git a/configure.ac b/configure.ac
17index 10f3629..65b76a1 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -476,6 +476,7 @@ src/Makefile
21 w32/Makefile
22 tests/Makefile])
23 AC_CONFIG_FILES(npth-config, chmod +x npth-config)
24+AC_CONFIG_FILES([src/npth.pc])
25 AC_OUTPUT
26
27 echo "
28diff --git a/src/Makefile.am b/src/Makefile.am
29index 7070118..6f01c64 100644
30--- a/src/Makefile.am
31+++ b/src/Makefile.am
32@@ -17,8 +17,10 @@
33 # License along with this program; if not, see <http://www.gnu.org/licenses/>.
34
35 ## Process this file with automake to produce Makefile.in
36+pkgconfigdir = $(libdir)/pkgconfig
37+pkgconfig_DATA = npth.pc
38
39-EXTRA_DIST = libnpth.vers
40+EXTRA_DIST = libnpth.vers npth.pc
41 # versioninfo.rc.in
42 nodist_include_HEADERS = npth.h
43
44diff --git a/src/npth.pc.in b/src/npth.pc.in
45new file mode 100644
46index 0000000..db091e8
47--- /dev/null
48+++ b/src/npth.pc.in
49@@ -0,0 +1,10 @@
50+prefix=@prefix@
51+exec_prefix=@exec_prefix@
52+libdir=@libdir@
53+includedir=@includedir@
54+
55+Name: npth
56+Description: a new portable posix threading library
57+Version: @VERSION@
58+Libs: -L${libdir} -lnpth -lpthread
59+Cflags: -I${includedir}
diff --git a/meta/recipes-support/npth/npth_1.7.bb b/meta/recipes-support/npth/npth_1.7.bb
deleted file mode 100644
index f02a731f85..0000000000
--- a/meta/recipes-support/npth/npth_1.7.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1SUMMARY = "New GNU Portable Threads library"
2DESCRIPTION = "nPth is a library to provide the GNU Pth API and thus a non-preemptive threads implementation. "
3HOMEPAGE = "https://www.gnu.org/software/pth/"
4SECTION = "libs"
5LICENSE = "LGPL-2.0-or-later"
6LIC_FILES_CHKSUM = "\
7 file://COPYING.LIB;md5=2caced0b25dfefd4c601d92bd15116de\
8 "
9UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
10SRC_URI = "${GNUPG_MIRROR}/npth/npth-${PV}.tar.bz2 \
11 file://pkgconfig.patch \
12 file://musl-fix.patch \
13 "
14
15SRC_URI[sha256sum] = "8589f56937b75ce33b28d312fccbf302b3b71ec3f3945fde6aaa74027914ad05"
16
17inherit autotools binconfig-disabled multilib_header
18
19FILES:${PN} = "${libdir}/libnpth.so.*"
20
21do_install:append() {
22 oe_multilib_header npth.h
23}
24
25BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/npth/npth_1.8.bb b/meta/recipes-support/npth/npth_1.8.bb
new file mode 100644
index 0000000000..a354af2a7c
--- /dev/null
+++ b/meta/recipes-support/npth/npth_1.8.bb
@@ -0,0 +1,19 @@
1SUMMARY = "New GNU Portable Threads library"
2DESCRIPTION = "nPth is a library to provide the GNU Pth API and thus a non-preemptive threads implementation. "
3HOMEPAGE = "https://gnupg.org/software/npth/"
4SECTION = "libs"
5LICENSE = "LGPL-2.0-or-later"
6LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2caced0b25dfefd4c601d92bd15116de"
7UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
8
9SRC_URI = "${GNUPG_MIRROR}/npth/npth-${PV}.tar.bz2"
10
11SRC_URI[sha256sum] = "8bd24b4f23a3065d6e5b26e98aba9ce783ea4fd781069c1b35d149694e90ca3e"
12
13inherit autotools multilib_header
14
15do_install:append() {
16 oe_multilib_header npth.h
17}
18
19BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb b/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
index 742e77eb18..9e41c5b9ed 100644
--- a/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
+++ b/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
@@ -9,7 +9,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1"
9SRC_URI = "http://0pointer.de/lennart/projects/nss-myhostname/nss-myhostname-${PV}.tar.gz \ 9SRC_URI = "http://0pointer.de/lennart/projects/nss-myhostname/nss-myhostname-${PV}.tar.gz \
10 " 10 "
11 11
12SRC_URI[md5sum] = "d4ab9ac36c053ab8fb836db1cbd4a48f"
13SRC_URI[sha256sum] = "2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2" 12SRC_URI[sha256sum] = "2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2"
14 13
15inherit autotools features_check 14inherit autotools features_check
diff --git a/meta/recipes-support/numactl/numactl/Fix-the-test-output-format.patch b/meta/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
index 8345f71d72..b7a2e51582 100644
--- a/meta/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
+++ b/meta/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
@@ -3,7 +3,7 @@ From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Tue, 21 Jul 2015 02:01:22 +0900 3Date: Tue, 21 Jul 2015 02:01:22 +0900
4Subject: [PATCH] Fix the test output format 4Subject: [PATCH] Fix the test output format
5 5
6Upstream-Status: Pending 6Upstream-Status: Inappropriate [needs a Makefile fix: regress/regress2 should be part of 'make check' rather than 'make test']
7 7
8Signed-off-by: Roy Li <rongqing.li@windriver.com> 8Signed-off-by: Roy Li <rongqing.li@windriver.com>
9Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com> 9Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
diff --git a/meta/recipes-support/numactl/numactl_git.bb b/meta/recipes-support/numactl/numactl_2.0.19.bb
index bd16df91ec..5ac9380c6c 100644
--- a/meta/recipes-support/numactl/numactl_git.bb
+++ b/meta/recipes-support/numactl/numactl_2.0.19.bb
@@ -10,8 +10,7 @@ inherit autotools-brokensep ptest
10 10
11LIC_FILES_CHKSUM = "file://README.md;beginline=19;endline=32;md5=9f34c3af4ed6f3f5df0da5f3c0835a43" 11LIC_FILES_CHKSUM = "file://README.md;beginline=19;endline=32;md5=9f34c3af4ed6f3f5df0da5f3c0835a43"
12 12
13SRCREV = "3871b1c42fc71bceadafd745d2eff5dddfc2d67e" 13SRCREV = "3bc85e37d5a30da6790cb7e8bb488bb8f679170f"
14PV = "2.0.18"
15 14
16SRC_URI = "git://github.com/numactl/numactl;branch=master;protocol=https \ 15SRC_URI = "git://github.com/numactl/numactl;branch=master;protocol=https \
17 file://Fix-the-test-output-format.patch \ 16 file://Fix-the-test-output-format.patch \
@@ -20,8 +19,6 @@ SRC_URI = "git://github.com/numactl/numactl;branch=master;protocol=https \
20 file://0001-define-run-test-target.patch \ 19 file://0001-define-run-test-target.patch \
21 " 20 "
22 21
23S = "${WORKDIR}/git"
24
25LDFLAGS:append:riscv64 = " -latomic" 22LDFLAGS:append:riscv64 = " -latomic"
26LDFLAGS:append:riscv32 = " -latomic" 23LDFLAGS:append:riscv32 = " -latomic"
27 24
@@ -52,7 +49,7 @@ do_install_ptest() {
52 install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test 49 install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test
53 done 50 done
54 51
55 install -m 0755 ${WORKDIR}/Makefile ${D}${PTEST_PATH}/ 52 install -m 0755 ${UNPACKDIR}/Makefile ${D}${PTEST_PATH}/
56 install -m 0755 ${B}/.libs/numactl ${D}${PTEST_PATH}/ 53 install -m 0755 ${B}/.libs/numactl ${D}${PTEST_PATH}/
57} 54}
58 55
diff --git a/meta/recipes-support/p11-kit/files/fix-parallel-build-failures.patch b/meta/recipes-support/p11-kit/files/fix-parallel-build-failures.patch
deleted file mode 100644
index 47df027106..0000000000
--- a/meta/recipes-support/p11-kit/files/fix-parallel-build-failures.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1It fails occasionally with missing generated header files:
2
3| ../git/common/asn1.c:42:10: fatal error: openssl.asn.h: No such file or directory
4| 42 | #include "openssl.asn.h"
5| | ^~~~~~~~~~~~~~~
6| compilation terminated.
7
8According to meson manual page:
9
10https://mesonbuild.com/Wrap-best-practices-and-tips.html#declare-generated-headers-explicitly
11
12'asn_h_dep' should be a dependency of static_library target 'libp11_asn1' to
13make sure that required header files generated before compile common/asn1.c.
14
15Upstream-Status: Submitted [https://github.com/p11-glue/p11-kit/pull/619]
16
17Signed-off-by: Kai Kang <kai.kang@windriver.com>
18---
19 common/meson.build | 1 +
20 1 file changed, 1 insertion(+)
21
22diff --git a/common/meson.build b/common/meson.build
23index dc86d7b..cc3ec48 100644
24--- a/common/meson.build
25+++ b/common/meson.build
26@@ -113,6 +113,7 @@ if with_asn1
27 'p11-asn1', libp11_asn1_sources,
28 gnu_symbol_visibility: 'hidden',
29 include_directories: configinc,
30+ dependencies: asn_h_dep,
31 )
32
33 libp11_asn1_dep = declare_dependency(
diff --git a/meta/recipes-support/p11-kit/p11-kit_0.25.3.bb b/meta/recipes-support/p11-kit/p11-kit_0.25.5.bb
index b7ebd44abc..d60e4abdaf 100644
--- a/meta/recipes-support/p11-kit/p11-kit_0.25.3.bb
+++ b/meta/recipes-support/p11-kit/p11-kit_0.25.5.bb
@@ -11,10 +11,8 @@ DEPENDS = "libtasn1 libtasn1-native libffi"
11DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}" 11DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
12 12
13SRC_URI = "gitsm://github.com/p11-glue/p11-kit;branch=master;protocol=https \ 13SRC_URI = "gitsm://github.com/p11-glue/p11-kit;branch=master;protocol=https \
14 file://fix-parallel-build-failures.patch \
15 " 14 "
16SRCREV = "917e02a3211dabbdea4b079cb598581dce84fda1" 15SRCREV = "0dd113361057e477f40ff4d8788f3e7e400af5f9"
17S = "${WORKDIR}/git"
18 16
19PACKAGECONFIG ??= "" 17PACKAGECONFIG ??= ""
20PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native" 18PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native"
@@ -32,3 +30,13 @@ FILES:${PN} += " \
32INSANE_SKIP:${PN} = "dev-so" 30INSANE_SKIP:${PN} = "dev-so"
33 31
34BBCLASSEXTEND = "native nativesdk" 32BBCLASSEXTEND = "native nativesdk"
33
34# # This one is reproducible only on 32bit MACHINEs
35# http://errors.yoctoproject.org/Errors/Details/766969/
36# git/p11-kit/import-object.c:223:62: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types]
37# git/p11-kit/import-object.c:229:70: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types]
38# git/p11-kit/import-object.c:264:78: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types]
39# git/p11-kit/import-object.c:223:62: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types]
40# git/p11-kit/import-object.c:229:70: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types]
41# git/p11-kit/import-object.c:264:78: error: passing argument 3 of 'p11_asn1_read' from incompatible pointer type [-Wincompatible-pointer-types]
42CFLAGS += "-Wno-error=incompatible-pointer-types"
diff --git a/meta/recipes-support/pinentry/pinentry-1.2.1/gpg-error_pkconf.patch b/meta/recipes-support/pinentry/pinentry-1.3.1/gpg-error_pkconf.patch
index bb7e43b1e7..863ba9e34b 100644
--- a/meta/recipes-support/pinentry/pinentry-1.2.1/gpg-error_pkconf.patch
+++ b/meta/recipes-support/pinentry/pinentry-1.3.1/gpg-error_pkconf.patch
@@ -1,4 +1,4 @@
1From 785777dc0bc6b69ff68c91547ec6b6634049662f Mon Sep 17 00:00:00 2001 1From ccc3c6a8d469bbfa6717b970cfe70816c1fd545e Mon Sep 17 00:00:00 2001
2From: Armin Kuster <akuster@mvista.com> 2From: Armin Kuster <akuster@mvista.com>
3Date: Fri, 2 Sep 2005 11:50:01 +0000 3Date: Fri, 2 Sep 2005 11:50:01 +0000
4Subject: [PATCH] Add gtk+, avahi, dbus-0.34 (.36 coming soon) and 4Subject: [PATCH] Add gtk+, avahi, dbus-0.34 (.36 coming soon) and
@@ -9,20 +9,20 @@ the gpg-error recipe for gpg-error.pc generation.
9Upstream-Status: Inappropriate [OE specific] 9Upstream-Status: Inappropriate [OE specific]
10 10
11Signed-off-by: Armin Kuster <akuster@mvista.com> 11Signed-off-by: Armin Kuster <akuster@mvista.com>
12
13--- 12---
14 m4/gpg-error.m4 | 160 ++---------------------------------------------- 13 m4/gpg-error.m4 | 184 ++----------------------------------------------
15 1 file changed, 4 insertions(+), 156 deletions(-) 14 1 file changed, 5 insertions(+), 179 deletions(-)
16 15
17diff --git a/m4/gpg-error.m4 b/m4/gpg-error.m4 16diff --git a/m4/gpg-error.m4 b/m4/gpg-error.m4
18index 4b5cd40..7dfbb83 100644 17index 7fa52b1..c0784ed 100644
19--- a/m4/gpg-error.m4 18--- a/m4/gpg-error.m4
20+++ b/m4/gpg-error.m4 19+++ b/m4/gpg-error.m4
21@@ -26,160 +26,12 @@ dnl config script does not match the host specification the script 20@@ -15,188 +15,18 @@
22 dnl is added to the gpg_config_script_warn variable. 21 dnl
22 dnl Find gpg-error-config, for backward compatibility
23 dnl 23 dnl
24 AC_DEFUN([AM_PATH_GPG_ERROR], 24-dnl _AM_PATH_POSSIBLE_GPG_ERROR_CONFIG
25-[ AC_REQUIRE([AC_CANONICAL_HOST]) 25-AC_DEFUN([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG],[dnl
26- gpg_error_config_prefix="" 26- gpg_error_config_prefix=""
27- dnl --with-libgpg-error-prefix=PFX is the preferred name for this option, 27- dnl --with-libgpg-error-prefix=PFX is the preferred name for this option,
28- dnl since that is consistent with how our three siblings use the directory/ 28- dnl since that is consistent with how our three siblings use the directory/
@@ -58,9 +58,14 @@ index 4b5cd40..7dfbb83 100644
58- fi 58- fi
59- 59-
60- AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no) 60- AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no)
61- min_gpg_error_version=ifelse([$1], ,1.33,$1) 61-])
62- ok=no
63- 62-
63-dnl
64-dnl Find gpgrt-config, which uses .pc file
65-dnl (minimum pkg-config functionality, supporting cross build)
66-dnl
67-dnl _AM_PATH_GPGRT_CONFIG
68-AC_DEFUN([_AM_PATH_GPGRT_CONFIG],[dnl
64- AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no, [$prefix/bin:$PATH]) 69- AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no, [$prefix/bin:$PATH])
65- if test "$GPGRT_CONFIG" != "no"; then 70- if test "$GPGRT_CONFIG" != "no"; then
66- # Determine gpgrt_libdir 71- # Determine gpgrt_libdir
@@ -116,8 +121,9 @@ index 4b5cd40..7dfbb83 100644
116- fi 121- fi
117- if test -n "$gpgrt_libdir"; then break; fi 122- if test -n "$gpgrt_libdir"; then break; fi
118- done 123- done
119- else 124- fi
120- # When we cannot determine system libdir-format, use this: 125- if test -z "$gpgrt_libdir"; then
126- # No valid pkgconfig dir in any of the system directories, fallback
121- gpgrt_libdir=${possible_libdir1} 127- gpgrt_libdir=${possible_libdir1}
122- fi 128- fi
123- else 129- else
@@ -131,12 +137,33 @@ index 4b5cd40..7dfbb83 100644
131- AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config]) 137- AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config])
132- gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion` 138- gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion`
133- else 139- else
140- gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
134- unset GPGRT_CONFIG 141- unset GPGRT_CONFIG
135- fi 142- fi
136- elif test "$GPG_ERROR_CONFIG" != "no"; then 143- elif test "$GPG_ERROR_CONFIG" != "no"; then
137- gpg_error_config_version=`$GPG_ERROR_CONFIG --version` 144- gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
138- unset GPGRT_CONFIG 145- unset GPGRT_CONFIG
139- fi 146- fi
147-])
148-
149-dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION,
150-dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
151-dnl
152-dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS,
153-dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are
154-dnl used for programs requireing real multi thread support.
155-dnl
156 dnl If a prefix option is not used, the config script is first
157 dnl searched in $SYSROOT/bin and then along $PATH. If the used
158 dnl config script does not match the host specification the script
159 dnl is added to the gpg_config_script_warn variable.
160 dnl
161-AC_DEFUN([AM_PATH_GPG_ERROR],[dnl
162-AC_REQUIRE([AC_CANONICAL_HOST])dnl
163-AC_REQUIRE([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG])dnl
164-AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
165- min_gpg_error_version=ifelse([$1], ,1.33,$1)
166- ok=no
140- if test "$GPG_ERROR_CONFIG" != "no"; then 167- if test "$GPG_ERROR_CONFIG" != "no"; then
141- req_major=`echo $min_gpg_error_version | \ 168- req_major=`echo $min_gpg_error_version | \
142- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` 169- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
@@ -157,6 +184,7 @@ index 4b5cd40..7dfbb83 100644
157- fi 184- fi
158- fi 185- fi
159- AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version) 186- AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version)
187+AC_DEFUN([AM_PATH_GPG_ERROR],
160+[ 188+[
161+ min_gpg_error_version=ifelse([$1], ,0.0,$1) 189+ min_gpg_error_version=ifelse([$1], ,0.0,$1)
162+ PKG_CHECK_MODULES(GPG_ERROR, [gpg-error >= $min_gpg_error_version gpg-error], [ok=yes], [ok=no]) 190+ PKG_CHECK_MODULES(GPG_ERROR, [gpg-error >= $min_gpg_error_version gpg-error], [ok=yes], [ok=no])
@@ -183,7 +211,7 @@ index 4b5cd40..7dfbb83 100644
183 if test x"$gpg_error_config_host" != xnone ; then 211 if test x"$gpg_error_config_host" != xnone ; then
184 if test x"$gpg_error_config_host" != x"$host" ; then 212 if test x"$gpg_error_config_host" != x"$host" ; then
185 AC_MSG_WARN([[ 213 AC_MSG_WARN([[
186@@ -194,10 +46,6 @@ AC_DEFUN([AM_PATH_GPG_ERROR], 214@@ -211,10 +41,6 @@ AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
187 fi 215 fi
188 fi 216 fi
189 else 217 else
diff --git a/meta/recipes-support/pinentry/pinentry-1.2.1/libassuan_pkgconf.patch b/meta/recipes-support/pinentry/pinentry-1.3.1/libassuan_pkgconf.patch
index f4aec2d1c3..f2d50010c5 100644
--- a/meta/recipes-support/pinentry/pinentry-1.2.1/libassuan_pkgconf.patch
+++ b/meta/recipes-support/pinentry/pinentry-1.3.1/libassuan_pkgconf.patch
@@ -1,4 +1,4 @@
1From 26fb6c3faa27180c8ed9ada1728c3d8683a65f3a Mon Sep 17 00:00:00 2001 1From 1bf04756b90832494020c39661ea944a0b11204f Mon Sep 17 00:00:00 2001
2From: Armin Kuster <akuster@mvista.com> 2From: Armin Kuster <akuster@mvista.com>
3Date: Thu, 22 May 2014 10:50:00 +0100 3Date: Thu, 22 May 2014 10:50:00 +0100
4Subject: [PATCH] libassuan: Improve pkgconfig support 4Subject: [PATCH] libassuan: Improve pkgconfig support
@@ -9,17 +9,16 @@ the libassuan recipe for libassuan.pc generation.
9Upstream-Status: Inappropriate [OE specific] 9Upstream-Status: Inappropriate [OE specific]
10 10
11Signed-off-by: Armin Kuster <akuster@mvista.com> 11Signed-off-by: Armin Kuster <akuster@mvista.com>
12
13--- 12---
14 configure.ac | 4 +-- 13 configure.ac | 4 +--
15 m4/libassuan.m4 | 93 ++++--------------------------------------------- 14 m4/libassuan.m4 | 94 ++++---------------------------------------------
16 2 files changed, 9 insertions(+), 88 deletions(-) 15 2 files changed, 9 insertions(+), 89 deletions(-)
17 16
18diff --git a/configure.ac b/configure.ac 17diff --git a/configure.ac b/configure.ac
19index d8dcc0c..ca51766 100644 18index 4944f7c..f03cbb7 100644
20--- a/configure.ac 19--- a/configure.ac
21+++ b/configure.ac 20+++ b/configure.ac
22@@ -267,8 +267,8 @@ if test "$have_libassuan" = "yes"; then 21@@ -264,8 +264,8 @@ if test "$have_libassuan" = "yes"; then
23 [version of the libassuan library]) 22 [version of the libassuan library])
24 fi 23 fi
25 24
@@ -31,7 +30,7 @@ index d8dcc0c..ca51766 100644
31 30
32 dnl Checks for libsecmem. 31 dnl Checks for libsecmem.
33diff --git a/m4/libassuan.m4 b/m4/libassuan.m4 32diff --git a/m4/libassuan.m4 b/m4/libassuan.m4
34index df50484..2057412 100644 33index a2eb5d9..897f407 100644
35--- a/m4/libassuan.m4 34--- a/m4/libassuan.m4
36+++ b/m4/libassuan.m4 35+++ b/m4/libassuan.m4
37@@ -15,30 +15,8 @@ dnl 36@@ -15,30 +15,8 @@ dnl
@@ -51,7 +50,7 @@ index df50484..2057412 100644
51- fi 50- fi
52- 51-
53- use_gpgrt_config="" 52- use_gpgrt_config=""
54- if test x"${LIBASSUAN_CONFIG}" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then 53- if test x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
55- if $GPGRT_CONFIG libassuan --exists; then 54- if $GPGRT_CONFIG libassuan --exists; then
56- LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan" 55- LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan"
57- AC_MSG_NOTICE([Use gpgrt-config as libassuan-config]) 56- AC_MSG_NOTICE([Use gpgrt-config as libassuan-config])
@@ -67,7 +66,7 @@ index df50484..2057412 100644
67 tmp=ifelse([$1], ,1:0.9.2,$1) 66 tmp=ifelse([$1], ,1:0.9.2,$1)
68 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 67 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
69 req_libassuan_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` 68 req_libassuan_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
70@@ -48,58 +26,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], 69@@ -48,59 +26,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
71 min_libassuan_version="$tmp" 70 min_libassuan_version="$tmp"
72 fi 71 fi
73 72
@@ -112,6 +111,7 @@ index df50484..2057412 100644
112- 111-
113- if test $ok = yes; then 112- if test $ok = yes; then
114- AC_MSG_RESULT([yes ($libassuan_config_version)]) 113- AC_MSG_RESULT([yes ($libassuan_config_version)])
114- AC_DEFINE(LIBASSUAN_API_REQUESTED, $req_libassuan_api, Requested API version for libassuan)
115- else 115- else
116- AC_MSG_RESULT(no) 116- AC_MSG_RESULT(no)
117- fi 117- fi
@@ -128,7 +128,7 @@ index df50484..2057412 100644
128 if test "$tmp" -gt 0 ; then 128 if test "$tmp" -gt 0 ; then
129 AC_MSG_CHECKING([LIBASSUAN API version]) 129 AC_MSG_CHECKING([LIBASSUAN API version])
130 if test "$req_libassuan_api" -eq "$tmp" ; then 130 if test "$req_libassuan_api" -eq "$tmp" ; then
131@@ -114,11 +45,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], 131@@ -117,11 +47,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
132 132
133 if test $ok = yes; then 133 if test $ok = yes; then
134 if test x"$host" != x ; then 134 if test x"$host" != x ; then
@@ -141,7 +141,7 @@ index df50484..2057412 100644
141 if test x"$libassuan_config_host" != xnone ; then 141 if test x"$libassuan_config_host" != xnone ; then
142 if test x"$libassuan_config_host" != x"$host" ; then 142 if test x"$libassuan_config_host" != x"$host" ; then
143 AC_MSG_WARN([[ 143 AC_MSG_WARN([[
144@@ -141,7 +68,7 @@ dnl Test whether libassuan has at least MINIMUM-VERSION. This is 144@@ -144,7 +70,7 @@ dnl Test whether libassuan has at least MINIMUM-VERSION. This is
145 dnl used to test for features only available in newer versions. 145 dnl used to test for features only available in newer versions.
146 dnl 146 dnl
147 AC_DEFUN([AM_CHECK_LIBASSUAN], 147 AC_DEFUN([AM_CHECK_LIBASSUAN],
@@ -150,7 +150,7 @@ index df50484..2057412 100644
150 if test $ok = yes; then 150 if test $ok = yes; then
151 ifelse([$2], , :, [$2]) 151 ifelse([$2], , :, [$2])
152 else 152 else
153@@ -157,16 +84,10 @@ dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) 153@@ -160,16 +86,10 @@ dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
154 dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS 154 dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS
155 dnl 155 dnl
156 AC_DEFUN([AM_PATH_LIBASSUAN], 156 AC_DEFUN([AM_PATH_LIBASSUAN],
diff --git a/meta/recipes-support/pinentry/pinentry_1.2.1.bb b/meta/recipes-support/pinentry/pinentry_1.3.1.bb
index 7daf80f36e..0fc652cdba 100644
--- a/meta/recipes-support/pinentry/pinentry_1.2.1.bb
+++ b/meta/recipes-support/pinentry/pinentry_1.3.1.bb
@@ -6,7 +6,7 @@ DESCRIPTION = "\
6 6
7HOMEPAGE = "http://www.gnupg.org/related_software/pinentry/index.en.html" 7HOMEPAGE = "http://www.gnupg.org/related_software/pinentry/index.en.html"
8LICENSE = "GPL-2.0-only" 8LICENSE = "GPL-2.0-only"
9LIC_FILES_CHKSUM = "file://COPYING;md5=cbbd794e2a0a289b9dfcc9f513d1996e" 9LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
10 10
11DEPENDS = "gettext-native libassuan libgpg-error" 11DEPENDS = "gettext-native libassuan libgpg-error"
12 12
@@ -16,10 +16,12 @@ SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
16 file://gpg-error_pkconf.patch \ 16 file://gpg-error_pkconf.patch \
17" 17"
18 18
19SRC_URI[sha256sum] = "457a185e5a85238fb945a955dc6352ab962dc8b48720b62fc9fa48c7540a4067" 19SRC_URI[sha256sum] = "bc72ee27c7239007ab1896c3c2fae53b076e2c9bd2483dc2769a16902bce8c04"
20 20
21inherit autotools pkgconfig 21inherit autotools pkgconfig
22 22
23require recipes-support/gnupg/drop-unknown-suffix.inc
24
23PACKAGECONFIG ??= "ncurses" 25PACKAGECONFIG ??= "ncurses"
24 26
25PACKAGECONFIG[ncurses] = "--enable-ncurses --with-ncurses-include-dir=${STAGING_INCDIR}, --disable-ncurses, ncurses" 27PACKAGECONFIG[ncurses] = "--enable-ncurses --with-ncurses-include-dir=${STAGING_INCDIR}, --disable-ncurses, ncurses"
diff --git a/meta/recipes-support/ptest-runner/ptest-runner_2.4.3.bb b/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb
index e6668da01f..89f85e2455 100644
--- a/meta/recipes-support/ptest-runner/ptest-runner_2.4.3.bb
+++ b/meta/recipes-support/ptest-runner/ptest-runner_2.4.5.1.bb
@@ -7,14 +7,11 @@ HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/ptest-runner2/about/"
7LICENSE = "GPL-2.0-or-later" 7LICENSE = "GPL-2.0-or-later"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" 8LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
9 9
10SRCREV = "92c1b97bfdb4a94acc1cabcaf97eef52dc29144c" 10SRCREV = "c99e8c2737ff802f110612cc2d90c60233c33255"
11PV .= "+git"
12 11
13SRC_URI = "git://git.yoctoproject.org/ptest-runner2;branch=master;protocol=https \ 12SRC_URI = "git://git.yoctoproject.org/ptest-runner2;branch=master;protocol=https \
14" 13"
15 14
16S = "${WORKDIR}/git"
17
18FILES:${PN} = "${bindir}/ptest-runner ${bindir}/ptest-runner-collect-system-data" 15FILES:${PN} = "${bindir}/ptest-runner ${bindir}/ptest-runner-collect-system-data"
19 16
20EXTRA_OEMAKE = "-e MAKEFLAGS= CFLAGS="${CFLAGS} -DDEFAULT_DIRECTORY=\\\"${libdir}\\\""" 17EXTRA_OEMAKE = "-e MAKEFLAGS= CFLAGS="${CFLAGS} -DDEFAULT_DIRECTORY=\\\"${libdir}\\\"""
diff --git a/meta/recipes-support/re2c/re2c_3.1.bb b/meta/recipes-support/re2c/re2c_4.2.bb
index a4b20422f6..0696080603 100644
--- a/meta/recipes-support/re2c/re2c_3.1.bb
+++ b/meta/recipes-support/re2c/re2c_4.2.bb
@@ -7,7 +7,7 @@ LICENSE = "PD"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d"
8 8
9SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" 9SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz"
10SRC_URI[sha256sum] = "0ac299ad359e3f512b06a99397d025cfff81d3be34464ded0656f8a96676c029" 10SRC_URI[sha256sum] = "c9dc2b24f340d135a07a1ac63ff53f7f8f74997fed5a4e9132a64050dbc3da1f"
11GITHUB_BASE_URI = "https://github.com/skvadrik/re2c/releases" 11GITHUB_BASE_URI = "https://github.com/skvadrik/re2c/releases"
12 12
13BBCLASSEXTEND = "native nativesdk" 13BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/rng-tools/rng-tools_6.16.bb b/meta/recipes-support/rng-tools/rng-tools_6.17.bb
index f0aa3ff93f..c979a91640 100644
--- a/meta/recipes-support/rng-tools/rng-tools_6.16.bb
+++ b/meta/recipes-support/rng-tools/rng-tools_6.17.bb
@@ -11,9 +11,7 @@ SRC_URI = "git://github.com/nhorman/rng-tools.git;branch=master;protocol=https \
11 file://default \ 11 file://default \
12 file://rng-tools.service \ 12 file://rng-tools.service \
13 " 13 "
14SRCREV = "e061c313b95890eb5fa0ada0cd6eec619dafdfe2" 14SRCREV = "bd00c08b0c3c6a880b0988befe97fd35b315468c"
15
16S = "${WORKDIR}/git"
17 15
18inherit autotools update-rc.d systemd pkgconfig 16inherit autotools update-rc.d systemd pkgconfig
19 17
@@ -50,9 +48,9 @@ do_configure:prepend() {
50} 48}
51 49
52do_install:append() { 50do_install:append() {
53 install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools 51 install -Dm 0644 ${UNPACKDIR}/default ${D}${sysconfdir}/default/rng-tools
54 install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools 52 install -Dm 0755 ${UNPACKDIR}/init ${D}${sysconfdir}/init.d/rng-tools
55 install -Dm 0644 ${WORKDIR}/rng-tools.service \ 53 install -Dm 0644 ${UNPACKDIR}/rng-tools.service \
56 ${D}${systemd_system_unitdir}/rng-tools.service 54 ${D}${systemd_system_unitdir}/rng-tools.service
57 sed -i \ 55 sed -i \
58 -e 's,@SYSCONFDIR@,${sysconfdir},g' \ 56 -e 's,@SYSCONFDIR@,${sysconfdir},g' \
@@ -67,3 +65,7 @@ do_install:append() {
67 ${D}${systemd_system_unitdir}/rng-tools.service 65 ${D}${systemd_system_unitdir}/rng-tools.service
68 fi 66 fi
69} 67}
68
69# libargp detection fails
70# http://errors.yoctoproject.org/Errors/Details/766951/
71CFLAGS += "-Wno-error=incompatible-pointer-types"
diff --git a/meta/recipes-support/sass/libsass/0001-Remove-version.h-from-source-directory.patch b/meta/recipes-support/sass/libsass/0001-Remove-version.h-from-source-directory.patch
new file mode 100644
index 0000000000..d1356dc83a
--- /dev/null
+++ b/meta/recipes-support/sass/libsass/0001-Remove-version.h-from-source-directory.patch
@@ -0,0 +1,87 @@
1From e5af3bbc9ea6e56e3d4e5cabcb5ac57b521fa6c0 Mon Sep 17 00:00:00 2001
2From: Yi Zhao <yi.zhao@windriver.com>
3Date: Thu, 24 Apr 2025 22:47:52 +0800
4Subject: [PATCH] Remove version.h from source directory
5
6The version.h should be generated from version.h.in. If the build
7directory is out of the source directory, the version.h is generated in
8build directory and the original version.h in source directory is not
9overwritten. However, the latter is used during the build, resulting in
10a missing runtime version:
11
12$ sassc --version
13sassc: [NA]
14libsass: [NA]
15sass2scss: 1.1.1
16sass: 3.5
17
18Remove version.h from source directory to ensure that the version.h in
19build directory is used during the build.
20
21Also remove '--dirty' option from 'git describe' command line in
22version.sh to get rid of '-dirty' suffix from version number that
23was introduced with this change.
24
25Upstream-Status: Submitted [https://github.com/sass/libsass/pull/3196]
26
27Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
28---
29 include/sass/version.h | 12 ------------
30 src/GNUmakefile.am | 4 ++--
31 version.sh | 2 +-
32 3 files changed, 3 insertions(+), 15 deletions(-)
33 delete mode 100644 include/sass/version.h
34
35diff --git a/include/sass/version.h b/include/sass/version.h
36deleted file mode 100644
37index 56ea016a..00000000
38--- a/include/sass/version.h
39+++ /dev/null
40@@ -1,12 +0,0 @@
41-#ifndef SASS_VERSION_H
42-#define SASS_VERSION_H
43-
44-#ifndef LIBSASS_VERSION
45-#define LIBSASS_VERSION "[NA]"
46-#endif
47-
48-#ifndef LIBSASS_LANGUAGE_VERSION
49-#define LIBSASS_LANGUAGE_VERSION "3.5"
50-#endif
51-
52-#endif
53diff --git a/src/GNUmakefile.am b/src/GNUmakefile.am
54index 9b0e6a99..e955f0b4 100644
55--- a/src/GNUmakefile.am
56+++ b/src/GNUmakefile.am
57@@ -8,7 +8,7 @@ if ENABLE_COVERAGE
58 AM_COVLDFLAGS += -lgcov
59 endif
60
61-AM_CPPFLAGS = -I$(top_srcdir)/include
62+AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include
63 AM_CFLAGS = $(AM_COPT)
64 AM_CXXFLAGS = $(AM_COPT)
65 AM_LDFLAGS = $(AM_COPT) $(AM_COVLDFLAGS)
66@@ -45,6 +45,6 @@ sass_includedir = $(includedir)/sass
67
68 sass_include_HEADERS = $(top_srcdir)/include/sass/base.h \
69 $(top_srcdir)/include/sass/values.h \
70- $(top_srcdir)/include/sass/version.h \
71+ $(top_builddir)/include/sass/version.h \
72 $(top_srcdir)/include/sass/context.h \
73 $(top_srcdir)/include/sass/functions.h
74diff --git a/version.sh b/version.sh
75index 281de74d..7bc57230 100755
76--- a/version.sh
77+++ b/version.sh
78@@ -1,5 +1,5 @@
79 if test "x$LIBSASS_VERSION" = "x"; then
80- LIBSASS_VERSION=`git describe --abbrev=4 --dirty --always --tags 2>/dev/null`
81+ LIBSASS_VERSION=`git describe --abbrev=4 --always --tags 2>/dev/null`
82 fi
83 if test "x$LIBSASS_VERSION" = "x"; then
84 LIBSASS_VERSION=`cat VERSION 2>/dev/null`
85--
862.34.1
87
diff --git a/meta/recipes-support/sass/libsass_3.6.6.bb b/meta/recipes-support/sass/libsass_3.6.6.bb
new file mode 100644
index 0000000000..de608f0a6b
--- /dev/null
+++ b/meta/recipes-support/sass/libsass_3.6.6.bb
@@ -0,0 +1,13 @@
1SUMMARY = "C/C++ port of the Sass CSS precompiler"
2HOMEPAGE = "http://sass-lang.com/libsass"
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://COPYING;md5=8f34396ca205f5e119ee77aae91fa27d"
5
6inherit autotools
7
8SRC_URI = "git://github.com/sass/libsass.git;protocol=https;branch=master \
9 file://0001-Remove-version.h-from-source-directory.patch"
10
11SRCREV = "7037f03fabeb2b18b5efa84403f5a6d7a990f460"
12
13BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/sass/sassc/0001-Remove-sassc_version.h-from-source-directory.patch b/meta/recipes-support/sass/sassc/0001-Remove-sassc_version.h-from-source-directory.patch
new file mode 100644
index 0000000000..c6717995c5
--- /dev/null
+++ b/meta/recipes-support/sass/sassc/0001-Remove-sassc_version.h-from-source-directory.patch
@@ -0,0 +1,61 @@
1From b5d03d5313d4cc19a7e6e9ba5fd74d1f8400cd46 Mon Sep 17 00:00:00 2001
2From: Yi Zhao <yi.zhao@windriver.com>
3Date: Thu, 24 Apr 2025 21:28:55 +0800
4Subject: [PATCH] Remove sassc_version.h from source directory
5
6The sassc_version.h should be generated from sassc_version.h.in. If the
7build directory is out of the source directory, the sassc_version.h is
8generated in build directory and the original sassc_version.h in source
9directory is not overwritten. However, the latter is used during the
10build, resulting in a missing runtime version:
11
12$ sassc --version
13sassc: [NA]
14libsass: [NA]
15sass2scss: 1.1.1
16sass: 3.5
17
18Remove sassc_version.h from source directory to ensure that the
19sassc_version.h in build directory is used during the build.
20
21Also remove '--dirty' option from 'git describe' command line in
22version.sh to get rid of '-dirty' suffix from version number that
23was introduced with this change.
24
25Upstream-Status: Submitted [https://github.com/sass/sassc/pull/283]
26
27Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
28---
29 sassc_version.h | 8 --------
30 version.sh | 2 +-
31 2 files changed, 1 insertion(+), 9 deletions(-)
32 delete mode 100644 sassc_version.h
33
34diff --git a/sassc_version.h b/sassc_version.h
35deleted file mode 100644
36index 3ca12e3..0000000
37--- a/sassc_version.h
38+++ /dev/null
39@@ -1,8 +0,0 @@
40-#ifndef SASSC_VERSION_H
41-#define SASSC_VERSION_H
42-
43-#ifndef SASSC_VERSION
44-#define SASSC_VERSION "[NA]"
45-#endif
46-
47-#endif
48diff --git a/version.sh b/version.sh
49index d56af99..cf97d82 100755
50--- a/version.sh
51+++ b/version.sh
52@@ -1,5 +1,5 @@
53 if test "x$SASSC_VERSION" = "x"; then
54- SASSC_VERSION=`git describe --abbrev=4 --dirty --always --tags 2>/dev/null`
55+ SASSC_VERSION=`git describe --abbrev=4 --always --tags 2>/dev/null`
56 fi
57 if test "x$SASSC_VERSION" = "x"; then
58 SASSC_VERSION=`cat VERSION 2>/dev/null`
59--
602.34.1
61
diff --git a/meta/recipes-support/sass/sassc_3.6.2.bb b/meta/recipes-support/sass/sassc_3.6.2.bb
new file mode 100644
index 0000000000..1de02f44b6
--- /dev/null
+++ b/meta/recipes-support/sass/sassc_3.6.2.bb
@@ -0,0 +1,17 @@
1SUMMARY = "libsass command line driver "
2HOMEPAGE = "https://sass-lang.com/libsass/"
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=2f8a76980411a3f1f1480b141ce06744"
5
6DEPENDS = "libsass"
7
8inherit autotools pkgconfig
9
10SRC_URI = "git://github.com/sass/sassc.git;protocol=https;branch=master \
11 file://0001-Remove-sassc_version.h-from-source-directory.patch"
12
13SRCREV = "66f0ef37e7f0ad3a65d2f481eff09d09408f42d0"
14
15CVE_STATUS[CVE-2022-43357] = "cpe-incorrect: this is CVE for libsass, not sassc wrapper"
16
17BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
index 91640d6044..c8e6eddfec 100644
--- a/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
+++ b/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch
@@ -31,7 +31,7 @@ ERROR: scons install execution failed.
31 and the installed paths (including the paths inside libserf*.pc) 31 and the installed paths (including the paths inside libserf*.pc)
32 look correct 32 look correct
33 33
34Upstream-Status: Pending 34Upstream-Status: Inappropriate [removes block of code rather than fixing the problem in that block]
35 35
36Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> 36Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
37 37
diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb b/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb
index ef5df44ad6..8790a9dc11 100644
--- a/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb
+++ b/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb
@@ -6,15 +6,13 @@ SECTION = "base"
6LICENSE = "GPL-2.0-only" 6LICENSE = "GPL-2.0-only"
7LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" 7LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
8 8
9DEPENDS = "libxml2 itstool-native glib-2.0 shared-mime-info-native xmlto-native" 9DEPENDS = "libxml2 glib-2.0 shared-mime-info-native xmlto-native"
10 10
11SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master \ 11SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master \
12 file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch \ 12 file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch \
13 file://0002-Handle-build-with-older-versions-of-GCC.patch" 13 file://0002-Handle-build-with-older-versions-of-GCC.patch"
14SRCREV = "9a6d6b8e963935f145f3a1ef446552de6996dada" 14SRCREV = "9a6d6b8e963935f145f3a1ef446552de6996dada"
15 15
16S = "${WORKDIR}/git"
17
18inherit meson pkgconfig gettext python3native mime 16inherit meson pkgconfig gettext python3native mime
19 17
20EXTRA_OEMESON = "-Dupdate-mimedb=true" 18EXTRA_OEMESON = "-Dupdate-mimedb=true"
diff --git a/meta/recipes-support/sqlite/sqlite3.inc b/meta/recipes-support/sqlite/sqlite3.inc
index 9a0de08553..28a33282ae 100644
--- a/meta/recipes-support/sqlite/sqlite3.inc
+++ b/meta/recipes-support/sqlite/sqlite3.inc
@@ -13,7 +13,7 @@ def sqlite_download_version(d):
13 13
14SQLITE_PV = "${@sqlite_download_version(d)}" 14SQLITE_PV = "${@sqlite_download_version(d)}"
15 15
16S = "${WORKDIR}/sqlite-autoconf-${SQLITE_PV}" 16S = "${UNPACKDIR}/sqlite-autoconf-${SQLITE_PV}"
17 17
18UPSTREAM_CHECK_URI = "http://www.sqlite.org/" 18UPSTREAM_CHECK_URI = "http://www.sqlite.org/"
19UPSTREAM_CHECK_REGEX = "releaselog/(?P<pver>(\d+[\.\-_]*)+)\.html" 19UPSTREAM_CHECK_REGEX = "releaselog/(?P<pver>(\d+[\.\-_]*)+)\.html"
@@ -45,14 +45,14 @@ EXTRA_OECONF = " \
45" 45"
46 46
47# pread() is in POSIX.1-2001 so any reasonable system must surely support it 47# pread() is in POSIX.1-2001 so any reasonable system must surely support it
48CFLAGS:append = " -DUSE_PREAD" 48CFLAGS += "-DUSE_PREAD"
49 49
50# Provide column meta-data API 50# Provide column meta-data API
51CFLAGS:append = " -DSQLITE_ENABLE_COLUMN_METADATA" 51CFLAGS += "-DSQLITE_ENABLE_COLUMN_METADATA"
52 52
53# Unless SQLITE_BYTEORDER is predefined, the code falls back to build time 53# Unless SQLITE_BYTEORDER is predefined, the code falls back to build time
54# huristics, which are not always correct 54# huristics, which are not always correct
55CFLAGS:append = " ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-DSQLITE_BYTEORDER=1234', '-DSQLITE_BYTEORDER=4321', d)}" 55CFLAGS += "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-DSQLITE_BYTEORDER=1234', '-DSQLITE_BYTEORDER=4321', d)}"
56 56
57PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-doc ${PN}-dbg lib${BPN}-staticdev ${PN}" 57PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-doc ${PN}-dbg lib${BPN}-staticdev ${PN}"
58 58
diff --git a/meta/recipes-support/sqlite/sqlite3_3.45.1.bb b/meta/recipes-support/sqlite/sqlite3_3.45.1.bb
deleted file mode 100644
index 50612feb25..0000000000
--- a/meta/recipes-support/sqlite/sqlite3_3.45.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
1require sqlite3.inc
2
3LICENSE = "PD"
4LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
5
6SRC_URI = "http://www.sqlite.org/2024/sqlite-autoconf-${SQLITE_PV}.tar.gz"
7SRC_URI[sha256sum] = "cd9c27841b7a5932c9897651e20b86c701dd740556989b01ca596fcfa3d49a0a"
8
diff --git a/meta/recipes-support/sqlite/sqlite3_3.48.0.bb b/meta/recipes-support/sqlite/sqlite3_3.48.0.bb
new file mode 100644
index 0000000000..bd2ac6614d
--- /dev/null
+++ b/meta/recipes-support/sqlite/sqlite3_3.48.0.bb
@@ -0,0 +1,8 @@
1require sqlite3.inc
2
3LICENSE = "PD"
4LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
5
6SRC_URI = "http://www.sqlite.org/2025/sqlite-autoconf-${SQLITE_PV}.tar.gz"
7SRC_URI[sha256sum] = "ac992f7fca3989de7ed1fe99c16363f848794c8c32a158dafd4eb927a2e02fd5"
8
diff --git a/meta/recipes-support/taglib/taglib_2.0.bb b/meta/recipes-support/taglib/taglib_2.1.bb
index 4bf9be15ae..a337af74d0 100644
--- a/meta/recipes-support/taglib/taglib_2.0.bb
+++ b/meta/recipes-support/taglib/taglib_2.1.bb
@@ -11,7 +11,7 @@ DEPENDS = "zlib utfcpp"
11 11
12SRC_URI = "http://taglib.github.io/releases/${BP}.tar.gz" 12SRC_URI = "http://taglib.github.io/releases/${BP}.tar.gz"
13 13
14SRC_URI[sha256sum] = "e36ea877a6370810b97d84cf8f72b1e4ed205149ab3ac8232d44c850f38a2859" 14SRC_URI[sha256sum] = "95b788b39eaebab41f7e6d1c1d05ceee01a5d1225e4b6d11ed8976e96ba90b0c"
15 15
16UPSTREAM_CHECK_URI = "https://taglib.org/" 16UPSTREAM_CHECK_URI = "https://taglib.org/"
17UPSTREAM_CHECK_REGEX = "taglib-(?P<pver>\d+(\.\d+)+)\.tar" 17UPSTREAM_CHECK_REGEX = "taglib-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/meta/recipes-support/user-creation/xuser-account_0.1.bb b/meta/recipes-support/user-creation/xuser-account_0.1.bb
index 639b01f6eb..04f506e7a3 100644
--- a/meta/recipes-support/user-creation/xuser-account_0.1.bb
+++ b/meta/recipes-support/user-creation/xuser-account_0.1.bb
@@ -6,6 +6,8 @@ SRC_URI = "file://system-xuser.conf"
6 6
7inherit allarch useradd 7inherit allarch useradd
8 8
9S = "${UNPACKDIR}"
10
9do_configure() { 11do_configure() {
10 : 12 :
11} 13}
@@ -15,7 +17,7 @@ do_compile() {
15} 17}
16 18
17do_install() { 19do_install() {
18 install -D -m 0644 ${WORKDIR}/system-xuser.conf ${D}${sysconfdir}/dbus-1/system.d/system-xuser.conf 20 install -D -m 0644 ${UNPACKDIR}/system-xuser.conf ${D}${sysconfdir}/dbus-1/system.d/system-xuser.conf
19} 21}
20 22
21FILES:${PN} = "${sysconfdir}/dbus-1/system.d/system-xuser.conf" 23FILES:${PN} = "${sysconfdir}/dbus-1/system.d/system-xuser.conf"
diff --git a/meta/recipes-support/utfcpp/utfcpp_4.0.5.bb b/meta/recipes-support/utfcpp/utfcpp_4.0.6.bb
index 5ac6fd369a..344f270158 100644
--- a/meta/recipes-support/utfcpp/utfcpp_4.0.5.bb
+++ b/meta/recipes-support/utfcpp/utfcpp_4.0.6.bb
@@ -7,9 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e4224ccaecb14d942c71d31bef20d78c \
7 7
8SRC_URI = "gitsm://github.com/nemtrif/utfcpp;protocol=https;branch=master" 8SRC_URI = "gitsm://github.com/nemtrif/utfcpp;protocol=https;branch=master"
9 9
10SRCREV = "6be08bbea14ffa0a5c594257fb6285a054395cd7" 10SRCREV = "b26a5f718f4f370af1852a0d5c6ae8fa031ba7d0"
11
12S = "${WORKDIR}/git"
13 11
14inherit cmake 12inherit cmake
15 13
diff --git a/meta/recipes-support/vim/files/no-path-adjust.patch b/meta/recipes-support/vim/files/no-path-adjust.patch
index 908459a95e..a92b1e7cdc 100644
--- a/meta/recipes-support/vim/files/no-path-adjust.patch
+++ b/meta/recipes-support/vim/files/no-path-adjust.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] vim: do not adjust script pathnames
6When cross-compiling, we do not want to reference the host versions of 6When cross-compiling, we do not want to reference the host versions of
7things like perl and awk. 7things like perl and awk.
8 8
9Upstream-Status: Pending 9Upstream-Status: Inappropriate [specific to cross compilation and sysroots]
10 10
11Signed-off-by: Joe Slater <joe.slater@windriver.com> 11Signed-off-by: Joe Slater <joe.slater@windriver.com>
12Signed-off-by: Mingli Yu <mingli.yu@windriver.com> 12Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
diff --git a/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
deleted file mode 100644
index 5284ba45b6..0000000000
--- a/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 38de4bccdb8a861ffdd447f12fdab19d6d852c02 Mon Sep 17 00:00:00 2001
2From: Chong Lu <Chong.Lu@windriver.com>
3Date: Tue, 26 Jun 2018 17:34:15 +0800
4Subject: [PATCH] vim: add knob whether elf.h are checked
5
6Previously, it still was checked when there was no elf library in sysroots directory.
7Add knob to decide whether elf.h are checked or not.
8
9Upstream-Status: Pending
10
11Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
12Signed-off-by: Changqing Li <changqing.li@windriver.com>
13---
14 src/configure.ac | 7 +++++++
15 1 file changed, 7 insertions(+)
16
17Index: git/src/configure.ac
18===================================================================
19--- git.orig/src/configure.ac
20+++ git/src/configure.ac
21@@ -3264,11 +3264,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [in
22 AC_MSG_RESULT(no))
23
24 dnl Checks for header files.
25+AC_MSG_CHECKING(whether or not to look for elf.h)
26+AC_ARG_ENABLE(elf-check,
27+ [ --enable-elf-check If elfutils, check for elf.h [default=no]],
28+ , enable_elf_check="no")
29+AC_MSG_RESULT($enable_elf_check)
30+if test "x$enable_elf_check" != "xno"; then
31 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
32 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
33 if test "$HAS_ELF" = 1; then
34 AC_CHECK_LIB(elf, main)
35 fi
36+fi
37
38 AC_HEADER_DIRENT
39
diff --git a/meta/recipes-support/vim/vim.inc b/meta/recipes-support/vim/vim.inc
index 071deed338..278a5baeb2 100644
--- a/meta/recipes-support/vim/vim.inc
+++ b/meta/recipes-support/vim/vim.inc
@@ -14,21 +14,18 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=d1a651ab770b45d41c0f8cb5a8ca930e"
14 14
15SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \ 15SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \
16 file://disable_acl_header_check.patch \ 16 file://disable_acl_header_check.patch \
17 file://vim-add-knob-whether-elf.h-are-checked.patch \
18 file://0001-src-Makefile-improve-reproducibility.patch \ 17 file://0001-src-Makefile-improve-reproducibility.patch \
19 file://no-path-adjust.patch \ 18 file://no-path-adjust.patch \
20 " 19 "
21 20
22PV .= ".0114" 21PV .= ".1198"
23SRCREV = "fcaed6a70faf73bff3e5405ada556d726024f866" 22SRCREV = "f209dcd3defb95bae21b2740910e6aa7bb940531"
24 23
25# Do not consider .z in x.y.z, as that is updated with every commit 24# Do not consider .z in x.y.z, as that is updated with every commit
26UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0" 25UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0"
27# Ignore that the upstream version .z in x.y.z is always newer 26# Ignore that the upstream version .z in x.y.z is always newer
28UPSTREAM_VERSION_UNKNOWN = "1" 27UPSTREAM_VERSION_UNKNOWN = "1"
29 28
30S = "${WORKDIR}/git"
31
32VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}" 29VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}"
33 30
34inherit autotools-brokensep update-alternatives mime-xdg pkgconfig 31inherit autotools-brokensep update-alternatives mime-xdg pkgconfig
@@ -128,7 +125,6 @@ FILES:${PN}-data = "${datadir}/${BPN}"
128# We do not want to complain if perl or gawk are not on the target. 125# We do not want to complain if perl or gawk are not on the target.
129# 126#
130FILES:${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools" 127FILES:${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools"
131INSANE_SKIP:${PN}-tools = "file-rdeps"
132 128
133FILES:${PN}-common = " \ 129FILES:${PN}-common = " \
134 ${datadir}/${BPN}/${VIMDIR}/*.vim \ 130 ${datadir}/${BPN}/${VIMDIR}/*.vim \
diff --git a/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
index 8934d5f80a..e2cff6cf76 100644
--- a/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
+++ b/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
@@ -1,4 +1,4 @@
1From de9639baac792327c701e509258b8a13f6959e82 Mon Sep 17 00:00:00 2001 1From b8795dda629614cd842fcba1c4b50be759c20da4 Mon Sep 17 00:00:00 2001
2From: Danilo Spinella <danyspin97@protonmail.com> 2From: Danilo Spinella <danyspin97@protonmail.com>
3Date: Thu, 21 Mar 2019 14:19:26 +0100 3Date: Thu, 21 Mar 2019 14:19:26 +0100
4Subject: [PATCH] Add W_EXITCODE macro for non-glibc systems 4Subject: [PATCH] Add W_EXITCODE macro for non-glibc systems
@@ -12,11 +12,11 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
12 12
13[1] https://gitlab.gnome.org/GNOME/vte/issues/72 13[1] https://gitlab.gnome.org/GNOME/vte/issues/72
14--- 14---
15 src/widget.cc | 4 +++ 15 src/widget.cc | 4 ++++
16 1 files changed, 4 insertions(+) 16 1 file changed, 4 insertions(+)
17 17
18diff --git a/src/widget.cc b/src/widget.cc 18diff --git a/src/widget.cc b/src/widget.cc
19index 07f7cabf..31a77f68 100644 19index b8daa5c..c357960 100644
20--- a/src/widget.cc 20--- a/src/widget.cc
21+++ b/src/widget.cc 21+++ b/src/widget.cc
22@@ -16,6 +16,10 @@ 22@@ -16,6 +16,10 @@
@@ -30,6 +30,3 @@ index 07f7cabf..31a77f68 100644
30 #include "config.h" 30 #include "config.h"
31 31
32 #include "widget.hh" 32 #include "widget.hh"
33--
342.42.0
35
diff --git a/meta/recipes-support/vte/vte/0002-lib-Typo-fix.patch b/meta/recipes-support/vte/vte/0002-lib-Typo-fix.patch
new file mode 100644
index 0000000000..410d506806
--- /dev/null
+++ b/meta/recipes-support/vte/vte/0002-lib-Typo-fix.patch
@@ -0,0 +1,25 @@
1From 6b7440996819c12ec32bfaf4e73b27baeb273207 Mon Sep 17 00:00:00 2001
2From: Christian Persch <chpe@src.gnome.org>
3Date: Thu, 5 Sep 2024 23:59:05 +0200
4Subject: [PATCH 2/3] lib: Typo fix
5
6Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/2816
7Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/vte/-/commit/e24087d953d9352c8bc46074e2662c80f9bfbc2d]
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 src/vteinternal.hh | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/src/vteinternal.hh b/src/vteinternal.hh
14index 051e78c..b1adc19 100644
15--- a/src/vteinternal.hh
16+++ b/src/vteinternal.hh
17@@ -1233,7 +1233,7 @@ public:
18 void reset_decoder();
19
20 void feed(std::string_view const& data,
21- bool start_processsing_ = true);
22+ bool start_processing_ = true);
23 void feed_child(char const* data,
24 size_t length) { assert(data); feed_child({data, length}); }
25 void feed_child(std::string_view const& str);
diff --git a/meta/recipes-support/vte/vte/0004-fast_float-Add-single-header-library-for-from_char-i.patch b/meta/recipes-support/vte/vte/0004-fast_float-Add-single-header-library-for-from_char-i.patch
new file mode 100644
index 0000000000..731dba729d
--- /dev/null
+++ b/meta/recipes-support/vte/vte/0004-fast_float-Add-single-header-library-for-from_char-i.patch
@@ -0,0 +1,3922 @@
1From 2a32e43e43b04771a3357d3d4ccbafa7714e0114 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 4 Oct 2024 21:21:11 -0700
4Subject: [PATCH 4/5] fast_float: Add single header library for from_char
5 implementation
6
7Document the process to re-generate the file whenever new release
8is made for fast_float upstream.
9
10This would make it work with llvm libc++
11
12Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/vte/-/issues/2823#note_2239888]
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 README.md | 17 +
16 src/fast_float.hh | 3869 +++++++++++++++++++++++++++++++++++++++++++++
17 2 files changed, 3886 insertions(+)
18 create mode 100644 src/fast_float.hh
19
20diff --git a/README.md b/README.md
21index a32465a9..20ed5ba2 100644
22--- a/README.md
23+++ b/README.md
24@@ -21,6 +21,23 @@ on download.gnome.org, but please note that any tarball for releases
25 after 0.60.3 were made by either the gnome release team or other
26 gnome contributors, but not by a VTE maintainer.
27
28+fast_float library[1] is used to provide from_chars implementation for faster
29+and more portable parsing of 64 decimal strings.
30+
31+fast_float.hh is an amalgamation of the entire library,
32+which can be regenerated by using amalgamate.py script provided by
33+fast_float repository. Following command can be used to re-generate the
34+header file
35+
36+```
37+git clone https://github.com/fastfloat/fast_float
38+cd fast_float
39+git checkout v6.1.6
40+python3 ./script/amalgamate.py --license=MIT > $VTE_SRC/src/fast_float.hh
41+```
42+
43+[1]: https://github.com/fastfloat/fast_float
44+
45 Installation
46 ------------
47
48diff --git a/src/fast_float.hh b/src/fast_float.hh
49new file mode 100644
50index 00000000..e0d5dd53
51--- /dev/null
52+++ b/src/fast_float.hh
53@@ -0,0 +1,3869 @@
54+// fast_float by Daniel Lemire
55+// fast_float by João Paulo Magalhaes
56+//
57+//
58+// with contributions from Eugene Golushkov
59+// with contributions from Maksim Kita
60+// with contributions from Marcin Wojdyr
61+// with contributions from Neal Richardson
62+// with contributions from Tim Paine
63+// with contributions from Fabio Pellacini
64+// with contributions from Lénárd Szolnoki
65+// with contributions from Jan Pharago
66+// with contributions from Maya Warrier
67+// with contributions from Taha Khokhar
68+//
69+//
70+// MIT License Notice
71+//
72+// MIT License
73+//
74+// Copyright (c) 2021 The fast_float authors
75+//
76+// Permission is hereby granted, free of charge, to any
77+// person obtaining a copy of this software and associated
78+// documentation files (the "Software"), to deal in the
79+// Software without restriction, including without
80+// limitation the rights to use, copy, modify, merge,
81+// publish, distribute, sublicense, and/or sell copies of
82+// the Software, and to permit persons to whom the Software
83+// is furnished to do so, subject to the following
84+// conditions:
85+//
86+// The above copyright notice and this permission notice
87+// shall be included in all copies or substantial portions
88+// of the Software.
89+//
90+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
91+// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
92+// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
93+// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
94+// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
95+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
96+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
97+// IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
98+// DEALINGS IN THE SOFTWARE.
99+//
100+
101+#ifndef FASTFLOAT_CONSTEXPR_FEATURE_DETECT_H
102+#define FASTFLOAT_CONSTEXPR_FEATURE_DETECT_H
103+
104+#ifdef __has_include
105+#if __has_include(<version>)
106+#include <version>
107+#endif
108+#endif
109+
110+// Testing for https://wg21.link/N3652, adopted in C++14
111+#if __cpp_constexpr >= 201304
112+#define FASTFLOAT_CONSTEXPR14 constexpr
113+#else
114+#define FASTFLOAT_CONSTEXPR14
115+#endif
116+
117+#if defined(__cpp_lib_bit_cast) && __cpp_lib_bit_cast >= 201806L
118+#define FASTFLOAT_HAS_BIT_CAST 1
119+#else
120+#define FASTFLOAT_HAS_BIT_CAST 0
121+#endif
122+
123+#if defined(__cpp_lib_is_constant_evaluated) && \
124+ __cpp_lib_is_constant_evaluated >= 201811L
125+#define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 1
126+#else
127+#define FASTFLOAT_HAS_IS_CONSTANT_EVALUATED 0
128+#endif
129+
130+// Testing for relevant C++20 constexpr library features
131+#if FASTFLOAT_HAS_IS_CONSTANT_EVALUATED && FASTFLOAT_HAS_BIT_CAST && \
132+ __cpp_lib_constexpr_algorithms >= 201806L /*For std::copy and std::fill*/
133+#define FASTFLOAT_CONSTEXPR20 constexpr
134+#define FASTFLOAT_IS_CONSTEXPR 1
135+#else
136+#define FASTFLOAT_CONSTEXPR20
137+#define FASTFLOAT_IS_CONSTEXPR 0
138+#endif
139+
140+#if __cplusplus >= 201703L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
141+#define FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE 0
142+#else
143+#define FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE 1
144+#endif
145+
146+#endif // FASTFLOAT_CONSTEXPR_FEATURE_DETECT_H
147+
148+#ifndef FASTFLOAT_FLOAT_COMMON_H
149+#define FASTFLOAT_FLOAT_COMMON_H
150+
151+#include <cfloat>
152+#include <cstdint>
153+#include <cassert>
154+#include <cstring>
155+#include <type_traits>
156+#include <system_error>
157+#ifdef __has_include
158+#if __has_include(<stdfloat>) && (__cplusplus > 202002L || _MSVC_LANG > 202002L)
159+#include <stdfloat>
160+#endif
161+#endif
162+
163+namespace fast_float {
164+
165+#define FASTFLOAT_JSONFMT (1 << 5)
166+#define FASTFLOAT_FORTRANFMT (1 << 6)
167+
168+enum chars_format {
169+ scientific = 1 << 0,
170+ fixed = 1 << 2,
171+ hex = 1 << 3,
172+ no_infnan = 1 << 4,
173+ // RFC 8259: https://datatracker.ietf.org/doc/html/rfc8259#section-6
174+ json = FASTFLOAT_JSONFMT | fixed | scientific | no_infnan,
175+ // Extension of RFC 8259 where, e.g., "inf" and "nan" are allowed.
176+ json_or_infnan = FASTFLOAT_JSONFMT | fixed | scientific,
177+ fortran = FASTFLOAT_FORTRANFMT | fixed | scientific,
178+ general = fixed | scientific
179+};
180+
181+template <typename UC> struct from_chars_result_t {
182+ UC const *ptr;
183+ std::errc ec;
184+};
185+using from_chars_result = from_chars_result_t<char>;
186+
187+template <typename UC> struct parse_options_t {
188+ constexpr explicit parse_options_t(chars_format fmt = chars_format::general,
189+ UC dot = UC('.'))
190+ : format(fmt), decimal_point(dot) {}
191+
192+ /** Which number formats are accepted */
193+ chars_format format;
194+ /** The character used as decimal point */
195+ UC decimal_point;
196+};
197+using parse_options = parse_options_t<char>;
198+
199+} // namespace fast_float
200+
201+#if FASTFLOAT_HAS_BIT_CAST
202+#include <bit>
203+#endif
204+
205+#if (defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \
206+ defined(__amd64) || defined(__aarch64__) || defined(_M_ARM64) || \
207+ defined(__MINGW64__) || defined(__s390x__) || \
208+ (defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || \
209+ defined(__PPC64LE__)) || \
210+ defined(__loongarch64))
211+#define FASTFLOAT_64BIT 1
212+#elif (defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
213+ defined(__arm__) || defined(_M_ARM) || defined(__ppc__) || \
214+ defined(__MINGW32__) || defined(__EMSCRIPTEN__))
215+#define FASTFLOAT_32BIT 1
216+#else
217+ // Need to check incrementally, since SIZE_MAX is a size_t, avoid overflow.
218+// We can never tell the register width, but the SIZE_MAX is a good
219+// approximation. UINTPTR_MAX and INTPTR_MAX are optional, so avoid them for max
220+// portability.
221+#if SIZE_MAX == 0xffff
222+#error Unknown platform (16-bit, unsupported)
223+#elif SIZE_MAX == 0xffffffff
224+#define FASTFLOAT_32BIT 1
225+#elif SIZE_MAX == 0xffffffffffffffff
226+#define FASTFLOAT_64BIT 1
227+#else
228+#error Unknown platform (not 32-bit, not 64-bit?)
229+#endif
230+#endif
231+
232+#if ((defined(_WIN32) || defined(_WIN64)) && !defined(__clang__)) || \
233+ (defined(_M_ARM64) && !defined(__MINGW32__))
234+#include <intrin.h>
235+#endif
236+
237+#if defined(_MSC_VER) && !defined(__clang__)
238+#define FASTFLOAT_VISUAL_STUDIO 1
239+#endif
240+
241+#if defined __BYTE_ORDER__ && defined __ORDER_BIG_ENDIAN__
242+#define FASTFLOAT_IS_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
243+#elif defined _WIN32
244+#define FASTFLOAT_IS_BIG_ENDIAN 0
245+#else
246+#if defined(__APPLE__) || defined(__FreeBSD__)
247+#include <machine/endian.h>
248+#elif defined(sun) || defined(__sun)
249+#include <sys/byteorder.h>
250+#elif defined(__MVS__)
251+#include <sys/endian.h>
252+#else
253+#ifdef __has_include
254+#if __has_include(<endian.h>)
255+#include <endian.h>
256+#endif //__has_include(<endian.h>)
257+#endif //__has_include
258+#endif
259+#
260+#ifndef __BYTE_ORDER__
261+// safe choice
262+#define FASTFLOAT_IS_BIG_ENDIAN 0
263+#endif
264+#
265+#ifndef __ORDER_LITTLE_ENDIAN__
266+// safe choice
267+#define FASTFLOAT_IS_BIG_ENDIAN 0
268+#endif
269+#
270+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
271+#define FASTFLOAT_IS_BIG_ENDIAN 0
272+#else
273+#define FASTFLOAT_IS_BIG_ENDIAN 1
274+#endif
275+#endif
276+
277+#if defined(__SSE2__) || (defined(FASTFLOAT_VISUAL_STUDIO) && \
278+ (defined(_M_AMD64) || defined(_M_X64) || \
279+ (defined(_M_IX86_FP) && _M_IX86_FP == 2)))
280+#define FASTFLOAT_SSE2 1
281+#endif
282+
283+#if defined(__aarch64__) || defined(_M_ARM64)
284+#define FASTFLOAT_NEON 1
285+#endif
286+
287+#if defined(FASTFLOAT_SSE2) || defined(FASTFLOAT_NEON)
288+#define FASTFLOAT_HAS_SIMD 1
289+#endif
290+
291+#if defined(__GNUC__)
292+// disable -Wcast-align=strict (GCC only)
293+#define FASTFLOAT_SIMD_DISABLE_WARNINGS \
294+ _Pragma("GCC diagnostic push") \
295+ _Pragma("GCC diagnostic ignored \"-Wcast-align\"")
296+#else
297+#define FASTFLOAT_SIMD_DISABLE_WARNINGS
298+#endif
299+
300+#if defined(__GNUC__)
301+#define FASTFLOAT_SIMD_RESTORE_WARNINGS _Pragma("GCC diagnostic pop")
302+#else
303+#define FASTFLOAT_SIMD_RESTORE_WARNINGS
304+#endif
305+
306+#ifdef FASTFLOAT_VISUAL_STUDIO
307+#define fastfloat_really_inline __forceinline
308+#else
309+#define fastfloat_really_inline inline __attribute__((always_inline))
310+#endif
311+
312+#ifndef FASTFLOAT_ASSERT
313+#define FASTFLOAT_ASSERT(x) \
314+ { ((void)(x)); }
315+#endif
316+
317+#ifndef FASTFLOAT_DEBUG_ASSERT
318+#define FASTFLOAT_DEBUG_ASSERT(x) \
319+ { ((void)(x)); }
320+#endif
321+
322+// rust style `try!()` macro, or `?` operator
323+#define FASTFLOAT_TRY(x) \
324+ { \
325+ if (!(x)) \
326+ return false; \
327+ }
328+
329+#define FASTFLOAT_ENABLE_IF(...) \
330+ typename std::enable_if<(__VA_ARGS__), int>::type
331+
332+namespace fast_float {
333+
334+fastfloat_really_inline constexpr bool cpp20_and_in_constexpr() {
335+#if FASTFLOAT_HAS_IS_CONSTANT_EVALUATED
336+ return std::is_constant_evaluated();
337+#else
338+ return false;
339+#endif
340+}
341+
342+template <typename T>
343+fastfloat_really_inline constexpr bool is_supported_float_type() {
344+ return std::is_same<T, float>::value || std::is_same<T, double>::value
345+#if __STDCPP_FLOAT32_T__
346+ || std::is_same<T, std::float32_t>::value
347+#endif
348+#if __STDCPP_FLOAT64_T__
349+ || std::is_same<T, std::float64_t>::value
350+#endif
351+ ;
352+}
353+
354+template <typename UC>
355+fastfloat_really_inline constexpr bool is_supported_char_type() {
356+ return std::is_same<UC, char>::value || std::is_same<UC, wchar_t>::value ||
357+ std::is_same<UC, char16_t>::value || std::is_same<UC, char32_t>::value;
358+}
359+
360+// Compares two ASCII strings in a case insensitive manner.
361+template <typename UC>
362+inline FASTFLOAT_CONSTEXPR14 bool
363+fastfloat_strncasecmp(UC const *input1, UC const *input2, size_t length) {
364+ char running_diff{0};
365+ for (size_t i = 0; i < length; ++i) {
366+ running_diff |= (char(input1[i]) ^ char(input2[i]));
367+ }
368+ return (running_diff == 0) || (running_diff == 32);
369+}
370+
371+#ifndef FLT_EVAL_METHOD
372+#error "FLT_EVAL_METHOD should be defined, please include cfloat."
373+#endif
374+
375+// a pointer and a length to a contiguous block of memory
376+template <typename T> struct span {
377+ const T *ptr;
378+ size_t length;
379+ constexpr span(const T *_ptr, size_t _length) : ptr(_ptr), length(_length) {}
380+ constexpr span() : ptr(nullptr), length(0) {}
381+
382+ constexpr size_t len() const noexcept { return length; }
383+
384+ FASTFLOAT_CONSTEXPR14 const T &operator[](size_t index) const noexcept {
385+ FASTFLOAT_DEBUG_ASSERT(index < length);
386+ return ptr[index];
387+ }
388+};
389+
390+struct value128 {
391+ uint64_t low;
392+ uint64_t high;
393+ constexpr value128(uint64_t _low, uint64_t _high) : low(_low), high(_high) {}
394+ constexpr value128() : low(0), high(0) {}
395+};
396+
397+/* Helper C++14 constexpr generic implementation of leading_zeroes */
398+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 int
399+leading_zeroes_generic(uint64_t input_num, int last_bit = 0) {
400+ if (input_num & uint64_t(0xffffffff00000000)) {
401+ input_num >>= 32;
402+ last_bit |= 32;
403+ }
404+ if (input_num & uint64_t(0xffff0000)) {
405+ input_num >>= 16;
406+ last_bit |= 16;
407+ }
408+ if (input_num & uint64_t(0xff00)) {
409+ input_num >>= 8;
410+ last_bit |= 8;
411+ }
412+ if (input_num & uint64_t(0xf0)) {
413+ input_num >>= 4;
414+ last_bit |= 4;
415+ }
416+ if (input_num & uint64_t(0xc)) {
417+ input_num >>= 2;
418+ last_bit |= 2;
419+ }
420+ if (input_num & uint64_t(0x2)) { /* input_num >>= 1; */
421+ last_bit |= 1;
422+ }
423+ return 63 - last_bit;
424+}
425+
426+/* result might be undefined when input_num is zero */
427+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 int
428+leading_zeroes(uint64_t input_num) {
429+ assert(input_num > 0);
430+ if (cpp20_and_in_constexpr()) {
431+ return leading_zeroes_generic(input_num);
432+ }
433+#ifdef FASTFLOAT_VISUAL_STUDIO
434+#if defined(_M_X64) || defined(_M_ARM64)
435+ unsigned long leading_zero = 0;
436+ // Search the mask data from most significant bit (MSB)
437+ // to least significant bit (LSB) for a set bit (1).
438+ _BitScanReverse64(&leading_zero, input_num);
439+ return (int)(63 - leading_zero);
440+#else
441+ return leading_zeroes_generic(input_num);
442+#endif
443+#else
444+ return __builtin_clzll(input_num);
445+#endif
446+}
447+
448+// slow emulation routine for 32-bit
449+fastfloat_really_inline constexpr uint64_t emulu(uint32_t x, uint32_t y) {
450+ return x * (uint64_t)y;
451+}
452+
453+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 uint64_t
454+umul128_generic(uint64_t ab, uint64_t cd, uint64_t *hi) {
455+ uint64_t ad = emulu((uint32_t)(ab >> 32), (uint32_t)cd);
456+ uint64_t bd = emulu((uint32_t)ab, (uint32_t)cd);
457+ uint64_t adbc = ad + emulu((uint32_t)ab, (uint32_t)(cd >> 32));
458+ uint64_t adbc_carry = (uint64_t)(adbc < ad);
459+ uint64_t lo = bd + (adbc << 32);
460+ *hi = emulu((uint32_t)(ab >> 32), (uint32_t)(cd >> 32)) + (adbc >> 32) +
461+ (adbc_carry << 32) + (uint64_t)(lo < bd);
462+ return lo;
463+}
464+
465+#ifdef FASTFLOAT_32BIT
466+
467+// slow emulation routine for 32-bit
468+#if !defined(__MINGW64__)
469+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 uint64_t _umul128(uint64_t ab,
470+ uint64_t cd,
471+ uint64_t *hi) {
472+ return umul128_generic(ab, cd, hi);
473+}
474+#endif // !__MINGW64__
475+
476+#endif // FASTFLOAT_32BIT
477+
478+// compute 64-bit a*b
479+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 value128
480+full_multiplication(uint64_t a, uint64_t b) {
481+ if (cpp20_and_in_constexpr()) {
482+ value128 answer;
483+ answer.low = umul128_generic(a, b, &answer.high);
484+ return answer;
485+ }
486+ value128 answer;
487+#if defined(_M_ARM64) && !defined(__MINGW32__)
488+ // ARM64 has native support for 64-bit multiplications, no need to emulate
489+ // But MinGW on ARM64 doesn't have native support for 64-bit multiplications
490+ answer.high = __umulh(a, b);
491+ answer.low = a * b;
492+#elif defined(FASTFLOAT_32BIT) || \
493+ (defined(_WIN64) && !defined(__clang__) && !defined(_M_ARM64))
494+ answer.low = _umul128(a, b, &answer.high); // _umul128 not available on ARM64
495+#elif defined(FASTFLOAT_64BIT) && defined(__SIZEOF_INT128__)
496+ __uint128_t r = ((__uint128_t)a) * b;
497+ answer.low = uint64_t(r);
498+ answer.high = uint64_t(r >> 64);
499+#else
500+ answer.low = umul128_generic(a, b, &answer.high);
501+#endif
502+ return answer;
503+}
504+
505+struct adjusted_mantissa {
506+ uint64_t mantissa{0};
507+ int32_t power2{0}; // a negative value indicates an invalid result
508+ adjusted_mantissa() = default;
509+ constexpr bool operator==(const adjusted_mantissa &o) const {
510+ return mantissa == o.mantissa && power2 == o.power2;
511+ }
512+ constexpr bool operator!=(const adjusted_mantissa &o) const {
513+ return mantissa != o.mantissa || power2 != o.power2;
514+ }
515+};
516+
517+// Bias so we can get the real exponent with an invalid adjusted_mantissa.
518+constexpr static int32_t invalid_am_bias = -0x8000;
519+
520+// used for binary_format_lookup_tables<T>::max_mantissa
521+constexpr uint64_t constant_55555 = 5 * 5 * 5 * 5 * 5;
522+
523+template <typename T, typename U = void> struct binary_format_lookup_tables;
524+
525+template <typename T> struct binary_format : binary_format_lookup_tables<T> {
526+ using equiv_uint =
527+ typename std::conditional<sizeof(T) == 4, uint32_t, uint64_t>::type;
528+
529+ static inline constexpr int mantissa_explicit_bits();
530+ static inline constexpr int minimum_exponent();
531+ static inline constexpr int infinite_power();
532+ static inline constexpr int sign_index();
533+ static inline constexpr int
534+ min_exponent_fast_path(); // used when fegetround() == FE_TONEAREST
535+ static inline constexpr int max_exponent_fast_path();
536+ static inline constexpr int max_exponent_round_to_even();
537+ static inline constexpr int min_exponent_round_to_even();
538+ static inline constexpr uint64_t max_mantissa_fast_path(int64_t power);
539+ static inline constexpr uint64_t
540+ max_mantissa_fast_path(); // used when fegetround() == FE_TONEAREST
541+ static inline constexpr int largest_power_of_ten();
542+ static inline constexpr int smallest_power_of_ten();
543+ static inline constexpr T exact_power_of_ten(int64_t power);
544+ static inline constexpr size_t max_digits();
545+ static inline constexpr equiv_uint exponent_mask();
546+ static inline constexpr equiv_uint mantissa_mask();
547+ static inline constexpr equiv_uint hidden_bit_mask();
548+};
549+
550+template <typename U> struct binary_format_lookup_tables<double, U> {
551+ static constexpr double powers_of_ten[] = {
552+ 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11,
553+ 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22};
554+
555+ // Largest integer value v so that (5**index * v) <= 1<<53.
556+ // 0x20000000000000 == 1 << 53
557+ static constexpr uint64_t max_mantissa[] = {
558+ 0x20000000000000,
559+ 0x20000000000000 / 5,
560+ 0x20000000000000 / (5 * 5),
561+ 0x20000000000000 / (5 * 5 * 5),
562+ 0x20000000000000 / (5 * 5 * 5 * 5),
563+ 0x20000000000000 / (constant_55555),
564+ 0x20000000000000 / (constant_55555 * 5),
565+ 0x20000000000000 / (constant_55555 * 5 * 5),
566+ 0x20000000000000 / (constant_55555 * 5 * 5 * 5),
567+ 0x20000000000000 / (constant_55555 * 5 * 5 * 5 * 5),
568+ 0x20000000000000 / (constant_55555 * constant_55555),
569+ 0x20000000000000 / (constant_55555 * constant_55555 * 5),
570+ 0x20000000000000 / (constant_55555 * constant_55555 * 5 * 5),
571+ 0x20000000000000 / (constant_55555 * constant_55555 * 5 * 5 * 5),
572+ 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555),
573+ 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 * 5),
574+ 0x20000000000000 /
575+ (constant_55555 * constant_55555 * constant_55555 * 5 * 5),
576+ 0x20000000000000 /
577+ (constant_55555 * constant_55555 * constant_55555 * 5 * 5 * 5),
578+ 0x20000000000000 /
579+ (constant_55555 * constant_55555 * constant_55555 * 5 * 5 * 5 * 5),
580+ 0x20000000000000 /
581+ (constant_55555 * constant_55555 * constant_55555 * constant_55555),
582+ 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 *
583+ constant_55555 * 5),
584+ 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 *
585+ constant_55555 * 5 * 5),
586+ 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 *
587+ constant_55555 * 5 * 5 * 5),
588+ 0x20000000000000 / (constant_55555 * constant_55555 * constant_55555 *
589+ constant_55555 * 5 * 5 * 5 * 5)};
590+};
591+
592+#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE
593+
594+template <typename U>
595+constexpr double binary_format_lookup_tables<double, U>::powers_of_ten[];
596+
597+template <typename U>
598+constexpr uint64_t binary_format_lookup_tables<double, U>::max_mantissa[];
599+
600+#endif
601+
602+template <typename U> struct binary_format_lookup_tables<float, U> {
603+ static constexpr float powers_of_ten[] = {1e0f, 1e1f, 1e2f, 1e3f, 1e4f, 1e5f,
604+ 1e6f, 1e7f, 1e8f, 1e9f, 1e10f};
605+
606+ // Largest integer value v so that (5**index * v) <= 1<<24.
607+ // 0x1000000 == 1<<24
608+ static constexpr uint64_t max_mantissa[] = {
609+ 0x1000000,
610+ 0x1000000 / 5,
611+ 0x1000000 / (5 * 5),
612+ 0x1000000 / (5 * 5 * 5),
613+ 0x1000000 / (5 * 5 * 5 * 5),
614+ 0x1000000 / (constant_55555),
615+ 0x1000000 / (constant_55555 * 5),
616+ 0x1000000 / (constant_55555 * 5 * 5),
617+ 0x1000000 / (constant_55555 * 5 * 5 * 5),
618+ 0x1000000 / (constant_55555 * 5 * 5 * 5 * 5),
619+ 0x1000000 / (constant_55555 * constant_55555),
620+ 0x1000000 / (constant_55555 * constant_55555 * 5)};
621+};
622+
623+#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE
624+
625+template <typename U>
626+constexpr float binary_format_lookup_tables<float, U>::powers_of_ten[];
627+
628+template <typename U>
629+constexpr uint64_t binary_format_lookup_tables<float, U>::max_mantissa[];
630+
631+#endif
632+
633+template <>
634+inline constexpr int binary_format<double>::min_exponent_fast_path() {
635+#if (FLT_EVAL_METHOD != 1) && (FLT_EVAL_METHOD != 0)
636+ return 0;
637+#else
638+ return -22;
639+#endif
640+}
641+
642+template <>
643+inline constexpr int binary_format<float>::min_exponent_fast_path() {
644+#if (FLT_EVAL_METHOD != 1) && (FLT_EVAL_METHOD != 0)
645+ return 0;
646+#else
647+ return -10;
648+#endif
649+}
650+
651+template <>
652+inline constexpr int binary_format<double>::mantissa_explicit_bits() {
653+ return 52;
654+}
655+template <>
656+inline constexpr int binary_format<float>::mantissa_explicit_bits() {
657+ return 23;
658+}
659+
660+template <>
661+inline constexpr int binary_format<double>::max_exponent_round_to_even() {
662+ return 23;
663+}
664+
665+template <>
666+inline constexpr int binary_format<float>::max_exponent_round_to_even() {
667+ return 10;
668+}
669+
670+template <>
671+inline constexpr int binary_format<double>::min_exponent_round_to_even() {
672+ return -4;
673+}
674+
675+template <>
676+inline constexpr int binary_format<float>::min_exponent_round_to_even() {
677+ return -17;
678+}
679+
680+template <> inline constexpr int binary_format<double>::minimum_exponent() {
681+ return -1023;
682+}
683+template <> inline constexpr int binary_format<float>::minimum_exponent() {
684+ return -127;
685+}
686+
687+template <> inline constexpr int binary_format<double>::infinite_power() {
688+ return 0x7FF;
689+}
690+template <> inline constexpr int binary_format<float>::infinite_power() {
691+ return 0xFF;
692+}
693+
694+template <> inline constexpr int binary_format<double>::sign_index() {
695+ return 63;
696+}
697+template <> inline constexpr int binary_format<float>::sign_index() {
698+ return 31;
699+}
700+
701+template <>
702+inline constexpr int binary_format<double>::max_exponent_fast_path() {
703+ return 22;
704+}
705+template <>
706+inline constexpr int binary_format<float>::max_exponent_fast_path() {
707+ return 10;
708+}
709+
710+template <>
711+inline constexpr uint64_t binary_format<double>::max_mantissa_fast_path() {
712+ return uint64_t(2) << mantissa_explicit_bits();
713+}
714+template <>
715+inline constexpr uint64_t
716+binary_format<double>::max_mantissa_fast_path(int64_t power) {
717+ // caller is responsible to ensure that
718+ // power >= 0 && power <= 22
719+ //
720+ // Work around clang bug https://godbolt.org/z/zedh7rrhc
721+ return (void)max_mantissa[0], max_mantissa[power];
722+}
723+template <>
724+inline constexpr uint64_t binary_format<float>::max_mantissa_fast_path() {
725+ return uint64_t(2) << mantissa_explicit_bits();
726+}
727+template <>
728+inline constexpr uint64_t
729+binary_format<float>::max_mantissa_fast_path(int64_t power) {
730+ // caller is responsible to ensure that
731+ // power >= 0 && power <= 10
732+ //
733+ // Work around clang bug https://godbolt.org/z/zedh7rrhc
734+ return (void)max_mantissa[0], max_mantissa[power];
735+}
736+
737+template <>
738+inline constexpr double
739+binary_format<double>::exact_power_of_ten(int64_t power) {
740+ // Work around clang bug https://godbolt.org/z/zedh7rrhc
741+ return (void)powers_of_ten[0], powers_of_ten[power];
742+}
743+template <>
744+inline constexpr float binary_format<float>::exact_power_of_ten(int64_t power) {
745+ // Work around clang bug https://godbolt.org/z/zedh7rrhc
746+ return (void)powers_of_ten[0], powers_of_ten[power];
747+}
748+
749+template <> inline constexpr int binary_format<double>::largest_power_of_ten() {
750+ return 308;
751+}
752+template <> inline constexpr int binary_format<float>::largest_power_of_ten() {
753+ return 38;
754+}
755+
756+template <>
757+inline constexpr int binary_format<double>::smallest_power_of_ten() {
758+ return -342;
759+}
760+template <> inline constexpr int binary_format<float>::smallest_power_of_ten() {
761+ return -64;
762+}
763+
764+template <> inline constexpr size_t binary_format<double>::max_digits() {
765+ return 769;
766+}
767+template <> inline constexpr size_t binary_format<float>::max_digits() {
768+ return 114;
769+}
770+
771+template <>
772+inline constexpr binary_format<float>::equiv_uint
773+binary_format<float>::exponent_mask() {
774+ return 0x7F800000;
775+}
776+template <>
777+inline constexpr binary_format<double>::equiv_uint
778+binary_format<double>::exponent_mask() {
779+ return 0x7FF0000000000000;
780+}
781+
782+template <>
783+inline constexpr binary_format<float>::equiv_uint
784+binary_format<float>::mantissa_mask() {
785+ return 0x007FFFFF;
786+}
787+template <>
788+inline constexpr binary_format<double>::equiv_uint
789+binary_format<double>::mantissa_mask() {
790+ return 0x000FFFFFFFFFFFFF;
791+}
792+
793+template <>
794+inline constexpr binary_format<float>::equiv_uint
795+binary_format<float>::hidden_bit_mask() {
796+ return 0x00800000;
797+}
798+template <>
799+inline constexpr binary_format<double>::equiv_uint
800+binary_format<double>::hidden_bit_mask() {
801+ return 0x0010000000000000;
802+}
803+
804+template <typename T>
805+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void
806+to_float(bool negative, adjusted_mantissa am, T &value) {
807+ using fastfloat_uint = typename binary_format<T>::equiv_uint;
808+ fastfloat_uint word = (fastfloat_uint)am.mantissa;
809+ word |= fastfloat_uint(am.power2)
810+ << binary_format<T>::mantissa_explicit_bits();
811+ word |= fastfloat_uint(negative) << binary_format<T>::sign_index();
812+#if FASTFLOAT_HAS_BIT_CAST
813+ value = std::bit_cast<T>(word);
814+#else
815+ ::memcpy(&value, &word, sizeof(T));
816+#endif
817+}
818+
819+#ifdef FASTFLOAT_SKIP_WHITE_SPACE // disabled by default
820+template <typename = void> struct space_lut {
821+ static constexpr bool value[] = {
822+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
824+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
826+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
827+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
833+};
834+
835+#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE
836+
837+template <typename T> constexpr bool space_lut<T>::value[];
838+
839+#endif
840+
841+inline constexpr bool is_space(uint8_t c) { return space_lut<>::value[c]; }
842+#endif
843+
844+template <typename UC> static constexpr uint64_t int_cmp_zeros() {
845+ static_assert((sizeof(UC) == 1) || (sizeof(UC) == 2) || (sizeof(UC) == 4),
846+ "Unsupported character size");
847+ return (sizeof(UC) == 1) ? 0x3030303030303030
848+ : (sizeof(UC) == 2)
849+ ? (uint64_t(UC('0')) << 48 | uint64_t(UC('0')) << 32 |
850+ uint64_t(UC('0')) << 16 | UC('0'))
851+ : (uint64_t(UC('0')) << 32 | UC('0'));
852+}
853+template <typename UC> static constexpr int int_cmp_len() {
854+ return sizeof(uint64_t) / sizeof(UC);
855+}
856+template <typename UC> static constexpr UC const *str_const_nan() {
857+ return nullptr;
858+}
859+template <> constexpr char const *str_const_nan<char>() { return "nan"; }
860+template <> constexpr wchar_t const *str_const_nan<wchar_t>() { return L"nan"; }
861+template <> constexpr char16_t const *str_const_nan<char16_t>() {
862+ return u"nan";
863+}
864+template <> constexpr char32_t const *str_const_nan<char32_t>() {
865+ return U"nan";
866+}
867+template <typename UC> static constexpr UC const *str_const_inf() {
868+ return nullptr;
869+}
870+template <> constexpr char const *str_const_inf<char>() { return "infinity"; }
871+template <> constexpr wchar_t const *str_const_inf<wchar_t>() {
872+ return L"infinity";
873+}
874+template <> constexpr char16_t const *str_const_inf<char16_t>() {
875+ return u"infinity";
876+}
877+template <> constexpr char32_t const *str_const_inf<char32_t>() {
878+ return U"infinity";
879+}
880+
881+template <typename = void> struct int_luts {
882+ static constexpr uint8_t chdigit[] = {
883+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
884+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
885+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
886+ 255, 255, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255,
887+ 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
888+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
889+ 35, 255, 255, 255, 255, 255, 255, 10, 11, 12, 13, 14, 15, 16, 17,
890+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
891+ 33, 34, 35, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
892+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
893+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
894+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
895+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
896+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
897+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
898+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
899+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
900+ 255};
901+
902+ static constexpr size_t maxdigits_u64[] = {
903+ 64, 41, 32, 28, 25, 23, 22, 21, 20, 19, 18, 18, 17, 17, 16, 16, 16, 16,
904+ 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13};
905+
906+ static constexpr uint64_t min_safe_u64[] = {
907+ 9223372036854775808ull, 12157665459056928801ull, 4611686018427387904,
908+ 7450580596923828125, 4738381338321616896, 3909821048582988049,
909+ 9223372036854775808ull, 12157665459056928801ull, 10000000000000000000ull,
910+ 5559917313492231481, 2218611106740436992, 8650415919381337933,
911+ 2177953337809371136, 6568408355712890625, 1152921504606846976,
912+ 2862423051509815793, 6746640616477458432, 15181127029874798299ull,
913+ 1638400000000000000, 3243919932521508681, 6221821273427820544,
914+ 11592836324538749809ull, 876488338465357824, 1490116119384765625,
915+ 2481152873203736576, 4052555153018976267, 6502111422497947648,
916+ 10260628712958602189ull, 15943230000000000000ull, 787662783788549761,
917+ 1152921504606846976, 1667889514952984961, 2386420683693101056,
918+ 3379220508056640625, 4738381338321616896};
919+};
920+
921+#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE
922+
923+template <typename T> constexpr uint8_t int_luts<T>::chdigit[];
924+
925+template <typename T> constexpr size_t int_luts<T>::maxdigits_u64[];
926+
927+template <typename T> constexpr uint64_t int_luts<T>::min_safe_u64[];
928+
929+#endif
930+
931+template <typename UC>
932+fastfloat_really_inline constexpr uint8_t ch_to_digit(UC c) {
933+ return int_luts<>::chdigit[static_cast<unsigned char>(c)];
934+}
935+
936+fastfloat_really_inline constexpr size_t max_digits_u64(int base) {
937+ return int_luts<>::maxdigits_u64[base - 2];
938+}
939+
940+// If a u64 is exactly max_digits_u64() in length, this is
941+// the value below which it has definitely overflowed.
942+fastfloat_really_inline constexpr uint64_t min_safe_u64(int base) {
943+ return int_luts<>::min_safe_u64[base - 2];
944+}
945+
946+} // namespace fast_float
947+
948+#endif
949+
950+
951+#ifndef FASTFLOAT_FAST_FLOAT_H
952+#define FASTFLOAT_FAST_FLOAT_H
953+
954+
955+namespace fast_float {
956+/**
957+ * This function parses the character sequence [first,last) for a number. It
958+ * parses floating-point numbers expecting a locale-indepent format equivalent
959+ * to what is used by std::strtod in the default ("C") locale. The resulting
960+ * floating-point value is the closest floating-point values (using either float
961+ * or double), using the "round to even" convention for values that would
962+ * otherwise fall right in-between two values. That is, we provide exact parsing
963+ * according to the IEEE standard.
964+ *
965+ * Given a successful parse, the pointer (`ptr`) in the returned value is set to
966+ * point right after the parsed number, and the `value` referenced is set to the
967+ * parsed value. In case of error, the returned `ec` contains a representative
968+ * error, otherwise the default (`std::errc()`) value is stored.
969+ *
970+ * The implementation does not throw and does not allocate memory (e.g., with
971+ * `new` or `malloc`).
972+ *
973+ * Like the C++17 standard, the `fast_float::from_chars` functions take an
974+ * optional last argument of the type `fast_float::chars_format`. It is a bitset
975+ * value: we check whether `fmt & fast_float::chars_format::fixed` and `fmt &
976+ * fast_float::chars_format::scientific` are set to determine whether we allow
977+ * the fixed point and scientific notation respectively. The default is
978+ * `fast_float::chars_format::general` which allows both `fixed` and
979+ * `scientific`.
980+ */
981+template <typename T, typename UC = char,
982+ typename = FASTFLOAT_ENABLE_IF(is_supported_float_type<T>())>
983+FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC>
984+from_chars(UC const *first, UC const *last, T &value,
985+ chars_format fmt = chars_format::general) noexcept;
986+
987+/**
988+ * Like from_chars, but accepts an `options` argument to govern number parsing.
989+ */
990+template <typename T, typename UC = char>
991+FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC>
992+from_chars_advanced(UC const *first, UC const *last, T &value,
993+ parse_options_t<UC> options) noexcept;
994+/**
995+ * from_chars for integer types.
996+ */
997+template <typename T, typename UC = char,
998+ typename = FASTFLOAT_ENABLE_IF(!is_supported_float_type<T>())>
999+FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC>
1000+from_chars(UC const *first, UC const *last, T &value, int base = 10) noexcept;
1001+
1002+} // namespace fast_float
1003+#endif // FASTFLOAT_FAST_FLOAT_H
1004+
1005+#ifndef FASTFLOAT_ASCII_NUMBER_H
1006+#define FASTFLOAT_ASCII_NUMBER_H
1007+
1008+#include <cctype>
1009+#include <cstdint>
1010+#include <cstring>
1011+#include <iterator>
1012+#include <limits>
1013+#include <type_traits>
1014+
1015+
1016+#ifdef FASTFLOAT_SSE2
1017+#include <emmintrin.h>
1018+#endif
1019+
1020+#ifdef FASTFLOAT_NEON
1021+#include <arm_neon.h>
1022+#endif
1023+
1024+namespace fast_float {
1025+
1026+template <typename UC> fastfloat_really_inline constexpr bool has_simd_opt() {
1027+#ifdef FASTFLOAT_HAS_SIMD
1028+ return std::is_same<UC, char16_t>::value;
1029+#else
1030+ return false;
1031+#endif
1032+}
1033+
1034+// Next function can be micro-optimized, but compilers are entirely
1035+// able to optimize it well.
1036+template <typename UC>
1037+fastfloat_really_inline constexpr bool is_integer(UC c) noexcept {
1038+ return !(c > UC('9') || c < UC('0'));
1039+}
1040+
1041+fastfloat_really_inline constexpr uint64_t byteswap(uint64_t val) {
1042+ return (val & 0xFF00000000000000) >> 56 | (val & 0x00FF000000000000) >> 40 |
1043+ (val & 0x0000FF0000000000) >> 24 | (val & 0x000000FF00000000) >> 8 |
1044+ (val & 0x00000000FF000000) << 8 | (val & 0x0000000000FF0000) << 24 |
1045+ (val & 0x000000000000FF00) << 40 | (val & 0x00000000000000FF) << 56;
1046+}
1047+
1048+// Read 8 UC into a u64. Truncates UC if not char.
1049+template <typename UC>
1050+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t
1051+read8_to_u64(const UC *chars) {
1052+ if (cpp20_and_in_constexpr() || !std::is_same<UC, char>::value) {
1053+ uint64_t val = 0;
1054+ for (int i = 0; i < 8; ++i) {
1055+ val |= uint64_t(uint8_t(*chars)) << (i * 8);
1056+ ++chars;
1057+ }
1058+ return val;
1059+ }
1060+ uint64_t val;
1061+ ::memcpy(&val, chars, sizeof(uint64_t));
1062+#if FASTFLOAT_IS_BIG_ENDIAN == 1
1063+ // Need to read as-if the number was in little-endian order.
1064+ val = byteswap(val);
1065+#endif
1066+ return val;
1067+}
1068+
1069+#ifdef FASTFLOAT_SSE2
1070+
1071+fastfloat_really_inline uint64_t simd_read8_to_u64(const __m128i data) {
1072+ FASTFLOAT_SIMD_DISABLE_WARNINGS
1073+ const __m128i packed = _mm_packus_epi16(data, data);
1074+#ifdef FASTFLOAT_64BIT
1075+ return uint64_t(_mm_cvtsi128_si64(packed));
1076+#else
1077+ uint64_t value;
1078+ // Visual Studio + older versions of GCC don't support _mm_storeu_si64
1079+ _mm_storel_epi64(reinterpret_cast<__m128i *>(&value), packed);
1080+ return value;
1081+#endif
1082+ FASTFLOAT_SIMD_RESTORE_WARNINGS
1083+}
1084+
1085+fastfloat_really_inline uint64_t simd_read8_to_u64(const char16_t *chars) {
1086+ FASTFLOAT_SIMD_DISABLE_WARNINGS
1087+ return simd_read8_to_u64(
1088+ _mm_loadu_si128(reinterpret_cast<const __m128i *>(chars)));
1089+ FASTFLOAT_SIMD_RESTORE_WARNINGS
1090+}
1091+
1092+#elif defined(FASTFLOAT_NEON)
1093+
1094+fastfloat_really_inline uint64_t simd_read8_to_u64(const uint16x8_t data) {
1095+ FASTFLOAT_SIMD_DISABLE_WARNINGS
1096+ uint8x8_t utf8_packed = vmovn_u16(data);
1097+ return vget_lane_u64(vreinterpret_u64_u8(utf8_packed), 0);
1098+ FASTFLOAT_SIMD_RESTORE_WARNINGS
1099+}
1100+
1101+fastfloat_really_inline uint64_t simd_read8_to_u64(const char16_t *chars) {
1102+ FASTFLOAT_SIMD_DISABLE_WARNINGS
1103+ return simd_read8_to_u64(
1104+ vld1q_u16(reinterpret_cast<const uint16_t *>(chars)));
1105+ FASTFLOAT_SIMD_RESTORE_WARNINGS
1106+}
1107+
1108+#endif // FASTFLOAT_SSE2
1109+
1110+// MSVC SFINAE is broken pre-VS2017
1111+#if defined(_MSC_VER) && _MSC_VER <= 1900
1112+template <typename UC>
1113+#else
1114+template <typename UC, FASTFLOAT_ENABLE_IF(!has_simd_opt<UC>()) = 0>
1115+#endif
1116+// dummy for compile
1117+uint64_t simd_read8_to_u64(UC const *) {
1118+ return 0;
1119+}
1120+
1121+// credit @aqrit
1122+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 uint32_t
1123+parse_eight_digits_unrolled(uint64_t val) {
1124+ const uint64_t mask = 0x000000FF000000FF;
1125+ const uint64_t mul1 = 0x000F424000000064; // 100 + (1000000ULL << 32)
1126+ const uint64_t mul2 = 0x0000271000000001; // 1 + (10000ULL << 32)
1127+ val -= 0x3030303030303030;
1128+ val = (val * 10) + (val >> 8); // val = (val * 2561) >> 8;
1129+ val = (((val & mask) * mul1) + (((val >> 16) & mask) * mul2)) >> 32;
1130+ return uint32_t(val);
1131+}
1132+
1133+// Call this if chars are definitely 8 digits.
1134+template <typename UC>
1135+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint32_t
1136+parse_eight_digits_unrolled(UC const *chars) noexcept {
1137+ if (cpp20_and_in_constexpr() || !has_simd_opt<UC>()) {
1138+ return parse_eight_digits_unrolled(read8_to_u64(chars)); // truncation okay
1139+ }
1140+ return parse_eight_digits_unrolled(simd_read8_to_u64(chars));
1141+}
1142+
1143+// credit @aqrit
1144+fastfloat_really_inline constexpr bool
1145+is_made_of_eight_digits_fast(uint64_t val) noexcept {
1146+ return !((((val + 0x4646464646464646) | (val - 0x3030303030303030)) &
1147+ 0x8080808080808080));
1148+}
1149+
1150+#ifdef FASTFLOAT_HAS_SIMD
1151+
1152+// Call this if chars might not be 8 digits.
1153+// Using this style (instead of is_made_of_eight_digits_fast() then
1154+// parse_eight_digits_unrolled()) ensures we don't load SIMD registers twice.
1155+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool
1156+simd_parse_if_eight_digits_unrolled(const char16_t *chars,
1157+ uint64_t &i) noexcept {
1158+ if (cpp20_and_in_constexpr()) {
1159+ return false;
1160+ }
1161+#ifdef FASTFLOAT_SSE2
1162+ FASTFLOAT_SIMD_DISABLE_WARNINGS
1163+ const __m128i data =
1164+ _mm_loadu_si128(reinterpret_cast<const __m128i *>(chars));
1165+
1166+ // (x - '0') <= 9
1167+ // http://0x80.pl/articles/simd-parsing-int-sequences.html
1168+ const __m128i t0 = _mm_add_epi16(data, _mm_set1_epi16(32720));
1169+ const __m128i t1 = _mm_cmpgt_epi16(t0, _mm_set1_epi16(-32759));
1170+
1171+ if (_mm_movemask_epi8(t1) == 0) {
1172+ i = i * 100000000 + parse_eight_digits_unrolled(simd_read8_to_u64(data));
1173+ return true;
1174+ } else
1175+ return false;
1176+ FASTFLOAT_SIMD_RESTORE_WARNINGS
1177+#elif defined(FASTFLOAT_NEON)
1178+ FASTFLOAT_SIMD_DISABLE_WARNINGS
1179+ const uint16x8_t data = vld1q_u16(reinterpret_cast<const uint16_t *>(chars));
1180+
1181+ // (x - '0') <= 9
1182+ // http://0x80.pl/articles/simd-parsing-int-sequences.html
1183+ const uint16x8_t t0 = vsubq_u16(data, vmovq_n_u16('0'));
1184+ const uint16x8_t mask = vcltq_u16(t0, vmovq_n_u16('9' - '0' + 1));
1185+
1186+ if (vminvq_u16(mask) == 0xFFFF) {
1187+ i = i * 100000000 + parse_eight_digits_unrolled(simd_read8_to_u64(data));
1188+ return true;
1189+ } else
1190+ return false;
1191+ FASTFLOAT_SIMD_RESTORE_WARNINGS
1192+#else
1193+ (void)chars;
1194+ (void)i;
1195+ return false;
1196+#endif // FASTFLOAT_SSE2
1197+}
1198+
1199+#endif // FASTFLOAT_HAS_SIMD
1200+
1201+// MSVC SFINAE is broken pre-VS2017
1202+#if defined(_MSC_VER) && _MSC_VER <= 1900
1203+template <typename UC>
1204+#else
1205+template <typename UC, FASTFLOAT_ENABLE_IF(!has_simd_opt<UC>()) = 0>
1206+#endif
1207+// dummy for compile
1208+bool simd_parse_if_eight_digits_unrolled(UC const *, uint64_t &) {
1209+ return 0;
1210+}
1211+
1212+template <typename UC, FASTFLOAT_ENABLE_IF(!std::is_same<UC, char>::value) = 0>
1213+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void
1214+loop_parse_if_eight_digits(const UC *&p, const UC *const pend, uint64_t &i) {
1215+ if (!has_simd_opt<UC>()) {
1216+ return;
1217+ }
1218+ while ((std::distance(p, pend) >= 8) &&
1219+ simd_parse_if_eight_digits_unrolled(
1220+ p, i)) { // in rare cases, this will overflow, but that's ok
1221+ p += 8;
1222+ }
1223+}
1224+
1225+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void
1226+loop_parse_if_eight_digits(const char *&p, const char *const pend,
1227+ uint64_t &i) {
1228+ // optimizes better than parse_if_eight_digits_unrolled() for UC = char.
1229+ while ((std::distance(p, pend) >= 8) &&
1230+ is_made_of_eight_digits_fast(read8_to_u64(p))) {
1231+ i = i * 100000000 +
1232+ parse_eight_digits_unrolled(read8_to_u64(
1233+ p)); // in rare cases, this will overflow, but that's ok
1234+ p += 8;
1235+ }
1236+}
1237+
1238+enum class parse_error {
1239+ no_error,
1240+ // [JSON-only] The minus sign must be followed by an integer.
1241+ missing_integer_after_sign,
1242+ // A sign must be followed by an integer or dot.
1243+ missing_integer_or_dot_after_sign,
1244+ // [JSON-only] The integer part must not have leading zeros.
1245+ leading_zeros_in_integer_part,
1246+ // [JSON-only] The integer part must have at least one digit.
1247+ no_digits_in_integer_part,
1248+ // [JSON-only] If there is a decimal point, there must be digits in the
1249+ // fractional part.
1250+ no_digits_in_fractional_part,
1251+ // The mantissa must have at least one digit.
1252+ no_digits_in_mantissa,
1253+ // Scientific notation requires an exponential part.
1254+ missing_exponential_part,
1255+};
1256+
1257+template <typename UC> struct parsed_number_string_t {
1258+ int64_t exponent{0};
1259+ uint64_t mantissa{0};
1260+ UC const *lastmatch{nullptr};
1261+ bool negative{false};
1262+ bool valid{false};
1263+ bool too_many_digits{false};
1264+ // contains the range of the significant digits
1265+ span<const UC> integer{}; // non-nullable
1266+ span<const UC> fraction{}; // nullable
1267+ parse_error error{parse_error::no_error};
1268+};
1269+
1270+using byte_span = span<const char>;
1271+using parsed_number_string = parsed_number_string_t<char>;
1272+
1273+template <typename UC>
1274+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 parsed_number_string_t<UC>
1275+report_parse_error(UC const *p, parse_error error) {
1276+ parsed_number_string_t<UC> answer;
1277+ answer.valid = false;
1278+ answer.lastmatch = p;
1279+ answer.error = error;
1280+ return answer;
1281+}
1282+
1283+// Assuming that you use no more than 19 digits, this will
1284+// parse an ASCII string.
1285+template <typename UC>
1286+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 parsed_number_string_t<UC>
1287+parse_number_string(UC const *p, UC const *pend,
1288+ parse_options_t<UC> options) noexcept {
1289+ chars_format const fmt = options.format;
1290+ UC const decimal_point = options.decimal_point;
1291+
1292+ parsed_number_string_t<UC> answer;
1293+ answer.valid = false;
1294+ answer.too_many_digits = false;
1295+ answer.negative = (*p == UC('-'));
1296+#ifdef FASTFLOAT_ALLOWS_LEADING_PLUS // disabled by default
1297+ if ((*p == UC('-')) || (!(fmt & FASTFLOAT_JSONFMT) && *p == UC('+'))) {
1298+#else
1299+ if (*p == UC('-')) { // C++17 20.19.3.(7.1) explicitly forbids '+' sign here
1300+#endif
1301+ ++p;
1302+ if (p == pend) {
1303+ return report_parse_error<UC>(
1304+ p, parse_error::missing_integer_or_dot_after_sign);
1305+ }
1306+ if (fmt & FASTFLOAT_JSONFMT) {
1307+ if (!is_integer(*p)) { // a sign must be followed by an integer
1308+ return report_parse_error<UC>(p,
1309+ parse_error::missing_integer_after_sign);
1310+ }
1311+ } else {
1312+ if (!is_integer(*p) &&
1313+ (*p !=
1314+ decimal_point)) { // a sign must be followed by an integer or the dot
1315+ return report_parse_error<UC>(
1316+ p, parse_error::missing_integer_or_dot_after_sign);
1317+ }
1318+ }
1319+ }
1320+ UC const *const start_digits = p;
1321+
1322+ uint64_t i = 0; // an unsigned int avoids signed overflows (which are bad)
1323+
1324+ while ((p != pend) && is_integer(*p)) {
1325+ // a multiplication by 10 is cheaper than an arbitrary integer
1326+ // multiplication
1327+ i = 10 * i +
1328+ uint64_t(*p -
1329+ UC('0')); // might overflow, we will handle the overflow later
1330+ ++p;
1331+ }
1332+ UC const *const end_of_integer_part = p;
1333+ int64_t digit_count = int64_t(end_of_integer_part - start_digits);
1334+ answer.integer = span<const UC>(start_digits, size_t(digit_count));
1335+ if (fmt & FASTFLOAT_JSONFMT) {
1336+ // at least 1 digit in integer part, without leading zeros
1337+ if (digit_count == 0) {
1338+ return report_parse_error<UC>(p, parse_error::no_digits_in_integer_part);
1339+ }
1340+ if ((start_digits[0] == UC('0') && digit_count > 1)) {
1341+ return report_parse_error<UC>(start_digits,
1342+ parse_error::leading_zeros_in_integer_part);
1343+ }
1344+ }
1345+
1346+ int64_t exponent = 0;
1347+ const bool has_decimal_point = (p != pend) && (*p == decimal_point);
1348+ if (has_decimal_point) {
1349+ ++p;
1350+ UC const *before = p;
1351+ // can occur at most twice without overflowing, but let it occur more, since
1352+ // for integers with many digits, digit parsing is the primary bottleneck.
1353+ loop_parse_if_eight_digits(p, pend, i);
1354+
1355+ while ((p != pend) && is_integer(*p)) {
1356+ uint8_t digit = uint8_t(*p - UC('0'));
1357+ ++p;
1358+ i = i * 10 + digit; // in rare cases, this will overflow, but that's ok
1359+ }
1360+ exponent = before - p;
1361+ answer.fraction = span<const UC>(before, size_t(p - before));
1362+ digit_count -= exponent;
1363+ }
1364+ if (fmt & FASTFLOAT_JSONFMT) {
1365+ // at least 1 digit in fractional part
1366+ if (has_decimal_point && exponent == 0) {
1367+ return report_parse_error<UC>(p,
1368+ parse_error::no_digits_in_fractional_part);
1369+ }
1370+ } else if (digit_count ==
1371+ 0) { // we must have encountered at least one integer!
1372+ return report_parse_error<UC>(p, parse_error::no_digits_in_mantissa);
1373+ }
1374+ int64_t exp_number = 0; // explicit exponential part
1375+ if (((fmt & chars_format::scientific) && (p != pend) &&
1376+ ((UC('e') == *p) || (UC('E') == *p))) ||
1377+ ((fmt & FASTFLOAT_FORTRANFMT) && (p != pend) &&
1378+ ((UC('+') == *p) || (UC('-') == *p) || (UC('d') == *p) ||
1379+ (UC('D') == *p)))) {
1380+ UC const *location_of_e = p;
1381+ if ((UC('e') == *p) || (UC('E') == *p) || (UC('d') == *p) ||
1382+ (UC('D') == *p)) {
1383+ ++p;
1384+ }
1385+ bool neg_exp = false;
1386+ if ((p != pend) && (UC('-') == *p)) {
1387+ neg_exp = true;
1388+ ++p;
1389+ } else if ((p != pend) &&
1390+ (UC('+') ==
1391+ *p)) { // '+' on exponent is allowed by C++17 20.19.3.(7.1)
1392+ ++p;
1393+ }
1394+ if ((p == pend) || !is_integer(*p)) {
1395+ if (!(fmt & chars_format::fixed)) {
1396+ // The exponential part is invalid for scientific notation, so it must
1397+ // be a trailing token for fixed notation. However, fixed notation is
1398+ // disabled, so report a scientific notation error.
1399+ return report_parse_error<UC>(p, parse_error::missing_exponential_part);
1400+ }
1401+ // Otherwise, we will be ignoring the 'e'.
1402+ p = location_of_e;
1403+ } else {
1404+ while ((p != pend) && is_integer(*p)) {
1405+ uint8_t digit = uint8_t(*p - UC('0'));
1406+ if (exp_number < 0x10000000) {
1407+ exp_number = 10 * exp_number + digit;
1408+ }
1409+ ++p;
1410+ }
1411+ if (neg_exp) {
1412+ exp_number = -exp_number;
1413+ }
1414+ exponent += exp_number;
1415+ }
1416+ } else {
1417+ // If it scientific and not fixed, we have to bail out.
1418+ if ((fmt & chars_format::scientific) && !(fmt & chars_format::fixed)) {
1419+ return report_parse_error<UC>(p, parse_error::missing_exponential_part);
1420+ }
1421+ }
1422+ answer.lastmatch = p;
1423+ answer.valid = true;
1424+
1425+ // If we frequently had to deal with long strings of digits,
1426+ // we could extend our code by using a 128-bit integer instead
1427+ // of a 64-bit integer. However, this is uncommon.
1428+ //
1429+ // We can deal with up to 19 digits.
1430+ if (digit_count > 19) { // this is uncommon
1431+ // It is possible that the integer had an overflow.
1432+ // We have to handle the case where we have 0.0000somenumber.
1433+ // We need to be mindful of the case where we only have zeroes...
1434+ // E.g., 0.000000000...000.
1435+ UC const *start = start_digits;
1436+ while ((start != pend) && (*start == UC('0') || *start == decimal_point)) {
1437+ if (*start == UC('0')) {
1438+ digit_count--;
1439+ }
1440+ start++;
1441+ }
1442+
1443+ if (digit_count > 19) {
1444+ answer.too_many_digits = true;
1445+ // Let us start again, this time, avoiding overflows.
1446+ // We don't need to check if is_integer, since we use the
1447+ // pre-tokenized spans from above.
1448+ i = 0;
1449+ p = answer.integer.ptr;
1450+ UC const *int_end = p + answer.integer.len();
1451+ const uint64_t minimal_nineteen_digit_integer{1000000000000000000};
1452+ while ((i < minimal_nineteen_digit_integer) && (p != int_end)) {
1453+ i = i * 10 + uint64_t(*p - UC('0'));
1454+ ++p;
1455+ }
1456+ if (i >= minimal_nineteen_digit_integer) { // We have a big integers
1457+ exponent = end_of_integer_part - p + exp_number;
1458+ } else { // We have a value with a fractional component.
1459+ p = answer.fraction.ptr;
1460+ UC const *frac_end = p + answer.fraction.len();
1461+ while ((i < minimal_nineteen_digit_integer) && (p != frac_end)) {
1462+ i = i * 10 + uint64_t(*p - UC('0'));
1463+ ++p;
1464+ }
1465+ exponent = answer.fraction.ptr - p + exp_number;
1466+ }
1467+ // We have now corrected both exponent and i, to a truncated value
1468+ }
1469+ }
1470+ answer.exponent = exponent;
1471+ answer.mantissa = i;
1472+ return answer;
1473+}
1474+
1475+template <typename T, typename UC>
1476+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC>
1477+parse_int_string(UC const *p, UC const *pend, T &value, int base) {
1478+ from_chars_result_t<UC> answer;
1479+
1480+ UC const *const first = p;
1481+
1482+ bool negative = (*p == UC('-'));
1483+ if (!std::is_signed<T>::value && negative) {
1484+ answer.ec = std::errc::invalid_argument;
1485+ answer.ptr = first;
1486+ return answer;
1487+ }
1488+#ifdef FASTFLOAT_ALLOWS_LEADING_PLUS // disabled by default
1489+ if ((*p == UC('-')) || (*p == UC('+'))) {
1490+#else
1491+ if (*p == UC('-')) {
1492+#endif
1493+ ++p;
1494+ }
1495+
1496+ UC const *const start_num = p;
1497+
1498+ while (p != pend && *p == UC('0')) {
1499+ ++p;
1500+ }
1501+
1502+ const bool has_leading_zeros = p > start_num;
1503+
1504+ UC const *const start_digits = p;
1505+
1506+ uint64_t i = 0;
1507+ if (base == 10) {
1508+ loop_parse_if_eight_digits(p, pend, i); // use SIMD if possible
1509+ }
1510+ while (p != pend) {
1511+ uint8_t digit = ch_to_digit(*p);
1512+ if (digit >= base) {
1513+ break;
1514+ }
1515+ i = uint64_t(base) * i + digit; // might overflow, check this later
1516+ p++;
1517+ }
1518+
1519+ size_t digit_count = size_t(p - start_digits);
1520+
1521+ if (digit_count == 0) {
1522+ if (has_leading_zeros) {
1523+ value = 0;
1524+ answer.ec = std::errc();
1525+ answer.ptr = p;
1526+ } else {
1527+ answer.ec = std::errc::invalid_argument;
1528+ answer.ptr = first;
1529+ }
1530+ return answer;
1531+ }
1532+
1533+ answer.ptr = p;
1534+
1535+ // check u64 overflow
1536+ size_t max_digits = max_digits_u64(base);
1537+ if (digit_count > max_digits) {
1538+ answer.ec = std::errc::result_out_of_range;
1539+ return answer;
1540+ }
1541+ // this check can be eliminated for all other types, but they will all require
1542+ // a max_digits(base) equivalent
1543+ if (digit_count == max_digits && i < min_safe_u64(base)) {
1544+ answer.ec = std::errc::result_out_of_range;
1545+ return answer;
1546+ }
1547+
1548+ // check other types overflow
1549+ if (!std::is_same<T, uint64_t>::value) {
1550+ if (i > uint64_t(std::numeric_limits<T>::max()) + uint64_t(negative)) {
1551+ answer.ec = std::errc::result_out_of_range;
1552+ return answer;
1553+ }
1554+ }
1555+
1556+ if (negative) {
1557+#ifdef FASTFLOAT_VISUAL_STUDIO
1558+#pragma warning(push)
1559+#pragma warning(disable : 4146)
1560+#endif
1561+ // this weird workaround is required because:
1562+ // - converting unsigned to signed when its value is greater than signed max
1563+ // is UB pre-C++23.
1564+ // - reinterpret_casting (~i + 1) would work, but it is not constexpr
1565+ // this is always optimized into a neg instruction (note: T is an integer
1566+ // type)
1567+ value = T(-std::numeric_limits<T>::max() -
1568+ T(i - uint64_t(std::numeric_limits<T>::max())));
1569+#ifdef FASTFLOAT_VISUAL_STUDIO
1570+#pragma warning(pop)
1571+#endif
1572+ } else {
1573+ value = T(i);
1574+ }
1575+
1576+ answer.ec = std::errc();
1577+ return answer;
1578+}
1579+
1580+} // namespace fast_float
1581+
1582+#endif
1583+
1584+#ifndef FASTFLOAT_FAST_TABLE_H
1585+#define FASTFLOAT_FAST_TABLE_H
1586+
1587+#include <cstdint>
1588+
1589+namespace fast_float {
1590+
1591+/**
1592+ * When mapping numbers from decimal to binary,
1593+ * we go from w * 10^q to m * 2^p but we have
1594+ * 10^q = 5^q * 2^q, so effectively
1595+ * we are trying to match
1596+ * w * 2^q * 5^q to m * 2^p. Thus the powers of two
1597+ * are not a concern since they can be represented
1598+ * exactly using the binary notation, only the powers of five
1599+ * affect the binary significand.
1600+ */
1601+
1602+/**
1603+ * The smallest non-zero float (binary64) is 2^-1074.
1604+ * We take as input numbers of the form w x 10^q where w < 2^64.
1605+ * We have that w * 10^-343 < 2^(64-344) 5^-343 < 2^-1076.
1606+ * However, we have that
1607+ * (2^64-1) * 10^-342 = (2^64-1) * 2^-342 * 5^-342 > 2^-1074.
1608+ * Thus it is possible for a number of the form w * 10^-342 where
1609+ * w is a 64-bit value to be a non-zero floating-point number.
1610+ *********
1611+ * Any number of form w * 10^309 where w>= 1 is going to be
1612+ * infinite in binary64 so we never need to worry about powers
1613+ * of 5 greater than 308.
1614+ */
1615+template <class unused = void> struct powers_template {
1616+
1617+ constexpr static int smallest_power_of_five =
1618+ binary_format<double>::smallest_power_of_ten();
1619+ constexpr static int largest_power_of_five =
1620+ binary_format<double>::largest_power_of_ten();
1621+ constexpr static int number_of_entries =
1622+ 2 * (largest_power_of_five - smallest_power_of_five + 1);
1623+ // Powers of five from 5^-342 all the way to 5^308 rounded toward one.
1624+ constexpr static uint64_t power_of_five_128[number_of_entries] = {
1625+ 0xeef453d6923bd65a, 0x113faa2906a13b3f,
1626+ 0x9558b4661b6565f8, 0x4ac7ca59a424c507,
1627+ 0xbaaee17fa23ebf76, 0x5d79bcf00d2df649,
1628+ 0xe95a99df8ace6f53, 0xf4d82c2c107973dc,
1629+ 0x91d8a02bb6c10594, 0x79071b9b8a4be869,
1630+ 0xb64ec836a47146f9, 0x9748e2826cdee284,
1631+ 0xe3e27a444d8d98b7, 0xfd1b1b2308169b25,
1632+ 0x8e6d8c6ab0787f72, 0xfe30f0f5e50e20f7,
1633+ 0xb208ef855c969f4f, 0xbdbd2d335e51a935,
1634+ 0xde8b2b66b3bc4723, 0xad2c788035e61382,
1635+ 0x8b16fb203055ac76, 0x4c3bcb5021afcc31,
1636+ 0xaddcb9e83c6b1793, 0xdf4abe242a1bbf3d,
1637+ 0xd953e8624b85dd78, 0xd71d6dad34a2af0d,
1638+ 0x87d4713d6f33aa6b, 0x8672648c40e5ad68,
1639+ 0xa9c98d8ccb009506, 0x680efdaf511f18c2,
1640+ 0xd43bf0effdc0ba48, 0x212bd1b2566def2,
1641+ 0x84a57695fe98746d, 0x14bb630f7604b57,
1642+ 0xa5ced43b7e3e9188, 0x419ea3bd35385e2d,
1643+ 0xcf42894a5dce35ea, 0x52064cac828675b9,
1644+ 0x818995ce7aa0e1b2, 0x7343efebd1940993,
1645+ 0xa1ebfb4219491a1f, 0x1014ebe6c5f90bf8,
1646+ 0xca66fa129f9b60a6, 0xd41a26e077774ef6,
1647+ 0xfd00b897478238d0, 0x8920b098955522b4,
1648+ 0x9e20735e8cb16382, 0x55b46e5f5d5535b0,
1649+ 0xc5a890362fddbc62, 0xeb2189f734aa831d,
1650+ 0xf712b443bbd52b7b, 0xa5e9ec7501d523e4,
1651+ 0x9a6bb0aa55653b2d, 0x47b233c92125366e,
1652+ 0xc1069cd4eabe89f8, 0x999ec0bb696e840a,
1653+ 0xf148440a256e2c76, 0xc00670ea43ca250d,
1654+ 0x96cd2a865764dbca, 0x380406926a5e5728,
1655+ 0xbc807527ed3e12bc, 0xc605083704f5ecf2,
1656+ 0xeba09271e88d976b, 0xf7864a44c633682e,
1657+ 0x93445b8731587ea3, 0x7ab3ee6afbe0211d,
1658+ 0xb8157268fdae9e4c, 0x5960ea05bad82964,
1659+ 0xe61acf033d1a45df, 0x6fb92487298e33bd,
1660+ 0x8fd0c16206306bab, 0xa5d3b6d479f8e056,
1661+ 0xb3c4f1ba87bc8696, 0x8f48a4899877186c,
1662+ 0xe0b62e2929aba83c, 0x331acdabfe94de87,
1663+ 0x8c71dcd9ba0b4925, 0x9ff0c08b7f1d0b14,
1664+ 0xaf8e5410288e1b6f, 0x7ecf0ae5ee44dd9,
1665+ 0xdb71e91432b1a24a, 0xc9e82cd9f69d6150,
1666+ 0x892731ac9faf056e, 0xbe311c083a225cd2,
1667+ 0xab70fe17c79ac6ca, 0x6dbd630a48aaf406,
1668+ 0xd64d3d9db981787d, 0x92cbbccdad5b108,
1669+ 0x85f0468293f0eb4e, 0x25bbf56008c58ea5,
1670+ 0xa76c582338ed2621, 0xaf2af2b80af6f24e,
1671+ 0xd1476e2c07286faa, 0x1af5af660db4aee1,
1672+ 0x82cca4db847945ca, 0x50d98d9fc890ed4d,
1673+ 0xa37fce126597973c, 0xe50ff107bab528a0,
1674+ 0xcc5fc196fefd7d0c, 0x1e53ed49a96272c8,
1675+ 0xff77b1fcbebcdc4f, 0x25e8e89c13bb0f7a,
1676+ 0x9faacf3df73609b1, 0x77b191618c54e9ac,
1677+ 0xc795830d75038c1d, 0xd59df5b9ef6a2417,
1678+ 0xf97ae3d0d2446f25, 0x4b0573286b44ad1d,
1679+ 0x9becce62836ac577, 0x4ee367f9430aec32,
1680+ 0xc2e801fb244576d5, 0x229c41f793cda73f,
1681+ 0xf3a20279ed56d48a, 0x6b43527578c1110f,
1682+ 0x9845418c345644d6, 0x830a13896b78aaa9,
1683+ 0xbe5691ef416bd60c, 0x23cc986bc656d553,
1684+ 0xedec366b11c6cb8f, 0x2cbfbe86b7ec8aa8,
1685+ 0x94b3a202eb1c3f39, 0x7bf7d71432f3d6a9,
1686+ 0xb9e08a83a5e34f07, 0xdaf5ccd93fb0cc53,
1687+ 0xe858ad248f5c22c9, 0xd1b3400f8f9cff68,
1688+ 0x91376c36d99995be, 0x23100809b9c21fa1,
1689+ 0xb58547448ffffb2d, 0xabd40a0c2832a78a,
1690+ 0xe2e69915b3fff9f9, 0x16c90c8f323f516c,
1691+ 0x8dd01fad907ffc3b, 0xae3da7d97f6792e3,
1692+ 0xb1442798f49ffb4a, 0x99cd11cfdf41779c,
1693+ 0xdd95317f31c7fa1d, 0x40405643d711d583,
1694+ 0x8a7d3eef7f1cfc52, 0x482835ea666b2572,
1695+ 0xad1c8eab5ee43b66, 0xda3243650005eecf,
1696+ 0xd863b256369d4a40, 0x90bed43e40076a82,
1697+ 0x873e4f75e2224e68, 0x5a7744a6e804a291,
1698+ 0xa90de3535aaae202, 0x711515d0a205cb36,
1699+ 0xd3515c2831559a83, 0xd5a5b44ca873e03,
1700+ 0x8412d9991ed58091, 0xe858790afe9486c2,
1701+ 0xa5178fff668ae0b6, 0x626e974dbe39a872,
1702+ 0xce5d73ff402d98e3, 0xfb0a3d212dc8128f,
1703+ 0x80fa687f881c7f8e, 0x7ce66634bc9d0b99,
1704+ 0xa139029f6a239f72, 0x1c1fffc1ebc44e80,
1705+ 0xc987434744ac874e, 0xa327ffb266b56220,
1706+ 0xfbe9141915d7a922, 0x4bf1ff9f0062baa8,
1707+ 0x9d71ac8fada6c9b5, 0x6f773fc3603db4a9,
1708+ 0xc4ce17b399107c22, 0xcb550fb4384d21d3,
1709+ 0xf6019da07f549b2b, 0x7e2a53a146606a48,
1710+ 0x99c102844f94e0fb, 0x2eda7444cbfc426d,
1711+ 0xc0314325637a1939, 0xfa911155fefb5308,
1712+ 0xf03d93eebc589f88, 0x793555ab7eba27ca,
1713+ 0x96267c7535b763b5, 0x4bc1558b2f3458de,
1714+ 0xbbb01b9283253ca2, 0x9eb1aaedfb016f16,
1715+ 0xea9c227723ee8bcb, 0x465e15a979c1cadc,
1716+ 0x92a1958a7675175f, 0xbfacd89ec191ec9,
1717+ 0xb749faed14125d36, 0xcef980ec671f667b,
1718+ 0xe51c79a85916f484, 0x82b7e12780e7401a,
1719+ 0x8f31cc0937ae58d2, 0xd1b2ecb8b0908810,
1720+ 0xb2fe3f0b8599ef07, 0x861fa7e6dcb4aa15,
1721+ 0xdfbdcece67006ac9, 0x67a791e093e1d49a,
1722+ 0x8bd6a141006042bd, 0xe0c8bb2c5c6d24e0,
1723+ 0xaecc49914078536d, 0x58fae9f773886e18,
1724+ 0xda7f5bf590966848, 0xaf39a475506a899e,
1725+ 0x888f99797a5e012d, 0x6d8406c952429603,
1726+ 0xaab37fd7d8f58178, 0xc8e5087ba6d33b83,
1727+ 0xd5605fcdcf32e1d6, 0xfb1e4a9a90880a64,
1728+ 0x855c3be0a17fcd26, 0x5cf2eea09a55067f,
1729+ 0xa6b34ad8c9dfc06f, 0xf42faa48c0ea481e,
1730+ 0xd0601d8efc57b08b, 0xf13b94daf124da26,
1731+ 0x823c12795db6ce57, 0x76c53d08d6b70858,
1732+ 0xa2cb1717b52481ed, 0x54768c4b0c64ca6e,
1733+ 0xcb7ddcdda26da268, 0xa9942f5dcf7dfd09,
1734+ 0xfe5d54150b090b02, 0xd3f93b35435d7c4c,
1735+ 0x9efa548d26e5a6e1, 0xc47bc5014a1a6daf,
1736+ 0xc6b8e9b0709f109a, 0x359ab6419ca1091b,
1737+ 0xf867241c8cc6d4c0, 0xc30163d203c94b62,
1738+ 0x9b407691d7fc44f8, 0x79e0de63425dcf1d,
1739+ 0xc21094364dfb5636, 0x985915fc12f542e4,
1740+ 0xf294b943e17a2bc4, 0x3e6f5b7b17b2939d,
1741+ 0x979cf3ca6cec5b5a, 0xa705992ceecf9c42,
1742+ 0xbd8430bd08277231, 0x50c6ff782a838353,
1743+ 0xece53cec4a314ebd, 0xa4f8bf5635246428,
1744+ 0x940f4613ae5ed136, 0x871b7795e136be99,
1745+ 0xb913179899f68584, 0x28e2557b59846e3f,
1746+ 0xe757dd7ec07426e5, 0x331aeada2fe589cf,
1747+ 0x9096ea6f3848984f, 0x3ff0d2c85def7621,
1748+ 0xb4bca50b065abe63, 0xfed077a756b53a9,
1749+ 0xe1ebce4dc7f16dfb, 0xd3e8495912c62894,
1750+ 0x8d3360f09cf6e4bd, 0x64712dd7abbbd95c,
1751+ 0xb080392cc4349dec, 0xbd8d794d96aacfb3,
1752+ 0xdca04777f541c567, 0xecf0d7a0fc5583a0,
1753+ 0x89e42caaf9491b60, 0xf41686c49db57244,
1754+ 0xac5d37d5b79b6239, 0x311c2875c522ced5,
1755+ 0xd77485cb25823ac7, 0x7d633293366b828b,
1756+ 0x86a8d39ef77164bc, 0xae5dff9c02033197,
1757+ 0xa8530886b54dbdeb, 0xd9f57f830283fdfc,
1758+ 0xd267caa862a12d66, 0xd072df63c324fd7b,
1759+ 0x8380dea93da4bc60, 0x4247cb9e59f71e6d,
1760+ 0xa46116538d0deb78, 0x52d9be85f074e608,
1761+ 0xcd795be870516656, 0x67902e276c921f8b,
1762+ 0x806bd9714632dff6, 0xba1cd8a3db53b6,
1763+ 0xa086cfcd97bf97f3, 0x80e8a40eccd228a4,
1764+ 0xc8a883c0fdaf7df0, 0x6122cd128006b2cd,
1765+ 0xfad2a4b13d1b5d6c, 0x796b805720085f81,
1766+ 0x9cc3a6eec6311a63, 0xcbe3303674053bb0,
1767+ 0xc3f490aa77bd60fc, 0xbedbfc4411068a9c,
1768+ 0xf4f1b4d515acb93b, 0xee92fb5515482d44,
1769+ 0x991711052d8bf3c5, 0x751bdd152d4d1c4a,
1770+ 0xbf5cd54678eef0b6, 0xd262d45a78a0635d,
1771+ 0xef340a98172aace4, 0x86fb897116c87c34,
1772+ 0x9580869f0e7aac0e, 0xd45d35e6ae3d4da0,
1773+ 0xbae0a846d2195712, 0x8974836059cca109,
1774+ 0xe998d258869facd7, 0x2bd1a438703fc94b,
1775+ 0x91ff83775423cc06, 0x7b6306a34627ddcf,
1776+ 0xb67f6455292cbf08, 0x1a3bc84c17b1d542,
1777+ 0xe41f3d6a7377eeca, 0x20caba5f1d9e4a93,
1778+ 0x8e938662882af53e, 0x547eb47b7282ee9c,
1779+ 0xb23867fb2a35b28d, 0xe99e619a4f23aa43,
1780+ 0xdec681f9f4c31f31, 0x6405fa00e2ec94d4,
1781+ 0x8b3c113c38f9f37e, 0xde83bc408dd3dd04,
1782+ 0xae0b158b4738705e, 0x9624ab50b148d445,
1783+ 0xd98ddaee19068c76, 0x3badd624dd9b0957,
1784+ 0x87f8a8d4cfa417c9, 0xe54ca5d70a80e5d6,
1785+ 0xa9f6d30a038d1dbc, 0x5e9fcf4ccd211f4c,
1786+ 0xd47487cc8470652b, 0x7647c3200069671f,
1787+ 0x84c8d4dfd2c63f3b, 0x29ecd9f40041e073,
1788+ 0xa5fb0a17c777cf09, 0xf468107100525890,
1789+ 0xcf79cc9db955c2cc, 0x7182148d4066eeb4,
1790+ 0x81ac1fe293d599bf, 0xc6f14cd848405530,
1791+ 0xa21727db38cb002f, 0xb8ada00e5a506a7c,
1792+ 0xca9cf1d206fdc03b, 0xa6d90811f0e4851c,
1793+ 0xfd442e4688bd304a, 0x908f4a166d1da663,
1794+ 0x9e4a9cec15763e2e, 0x9a598e4e043287fe,
1795+ 0xc5dd44271ad3cdba, 0x40eff1e1853f29fd,
1796+ 0xf7549530e188c128, 0xd12bee59e68ef47c,
1797+ 0x9a94dd3e8cf578b9, 0x82bb74f8301958ce,
1798+ 0xc13a148e3032d6e7, 0xe36a52363c1faf01,
1799+ 0xf18899b1bc3f8ca1, 0xdc44e6c3cb279ac1,
1800+ 0x96f5600f15a7b7e5, 0x29ab103a5ef8c0b9,
1801+ 0xbcb2b812db11a5de, 0x7415d448f6b6f0e7,
1802+ 0xebdf661791d60f56, 0x111b495b3464ad21,
1803+ 0x936b9fcebb25c995, 0xcab10dd900beec34,
1804+ 0xb84687c269ef3bfb, 0x3d5d514f40eea742,
1805+ 0xe65829b3046b0afa, 0xcb4a5a3112a5112,
1806+ 0x8ff71a0fe2c2e6dc, 0x47f0e785eaba72ab,
1807+ 0xb3f4e093db73a093, 0x59ed216765690f56,
1808+ 0xe0f218b8d25088b8, 0x306869c13ec3532c,
1809+ 0x8c974f7383725573, 0x1e414218c73a13fb,
1810+ 0xafbd2350644eeacf, 0xe5d1929ef90898fa,
1811+ 0xdbac6c247d62a583, 0xdf45f746b74abf39,
1812+ 0x894bc396ce5da772, 0x6b8bba8c328eb783,
1813+ 0xab9eb47c81f5114f, 0x66ea92f3f326564,
1814+ 0xd686619ba27255a2, 0xc80a537b0efefebd,
1815+ 0x8613fd0145877585, 0xbd06742ce95f5f36,
1816+ 0xa798fc4196e952e7, 0x2c48113823b73704,
1817+ 0xd17f3b51fca3a7a0, 0xf75a15862ca504c5,
1818+ 0x82ef85133de648c4, 0x9a984d73dbe722fb,
1819+ 0xa3ab66580d5fdaf5, 0xc13e60d0d2e0ebba,
1820+ 0xcc963fee10b7d1b3, 0x318df905079926a8,
1821+ 0xffbbcfe994e5c61f, 0xfdf17746497f7052,
1822+ 0x9fd561f1fd0f9bd3, 0xfeb6ea8bedefa633,
1823+ 0xc7caba6e7c5382c8, 0xfe64a52ee96b8fc0,
1824+ 0xf9bd690a1b68637b, 0x3dfdce7aa3c673b0,
1825+ 0x9c1661a651213e2d, 0x6bea10ca65c084e,
1826+ 0xc31bfa0fe5698db8, 0x486e494fcff30a62,
1827+ 0xf3e2f893dec3f126, 0x5a89dba3c3efccfa,
1828+ 0x986ddb5c6b3a76b7, 0xf89629465a75e01c,
1829+ 0xbe89523386091465, 0xf6bbb397f1135823,
1830+ 0xee2ba6c0678b597f, 0x746aa07ded582e2c,
1831+ 0x94db483840b717ef, 0xa8c2a44eb4571cdc,
1832+ 0xba121a4650e4ddeb, 0x92f34d62616ce413,
1833+ 0xe896a0d7e51e1566, 0x77b020baf9c81d17,
1834+ 0x915e2486ef32cd60, 0xace1474dc1d122e,
1835+ 0xb5b5ada8aaff80b8, 0xd819992132456ba,
1836+ 0xe3231912d5bf60e6, 0x10e1fff697ed6c69,
1837+ 0x8df5efabc5979c8f, 0xca8d3ffa1ef463c1,
1838+ 0xb1736b96b6fd83b3, 0xbd308ff8a6b17cb2,
1839+ 0xddd0467c64bce4a0, 0xac7cb3f6d05ddbde,
1840+ 0x8aa22c0dbef60ee4, 0x6bcdf07a423aa96b,
1841+ 0xad4ab7112eb3929d, 0x86c16c98d2c953c6,
1842+ 0xd89d64d57a607744, 0xe871c7bf077ba8b7,
1843+ 0x87625f056c7c4a8b, 0x11471cd764ad4972,
1844+ 0xa93af6c6c79b5d2d, 0xd598e40d3dd89bcf,
1845+ 0xd389b47879823479, 0x4aff1d108d4ec2c3,
1846+ 0x843610cb4bf160cb, 0xcedf722a585139ba,
1847+ 0xa54394fe1eedb8fe, 0xc2974eb4ee658828,
1848+ 0xce947a3da6a9273e, 0x733d226229feea32,
1849+ 0x811ccc668829b887, 0x806357d5a3f525f,
1850+ 0xa163ff802a3426a8, 0xca07c2dcb0cf26f7,
1851+ 0xc9bcff6034c13052, 0xfc89b393dd02f0b5,
1852+ 0xfc2c3f3841f17c67, 0xbbac2078d443ace2,
1853+ 0x9d9ba7832936edc0, 0xd54b944b84aa4c0d,
1854+ 0xc5029163f384a931, 0xa9e795e65d4df11,
1855+ 0xf64335bcf065d37d, 0x4d4617b5ff4a16d5,
1856+ 0x99ea0196163fa42e, 0x504bced1bf8e4e45,
1857+ 0xc06481fb9bcf8d39, 0xe45ec2862f71e1d6,
1858+ 0xf07da27a82c37088, 0x5d767327bb4e5a4c,
1859+ 0x964e858c91ba2655, 0x3a6a07f8d510f86f,
1860+ 0xbbe226efb628afea, 0x890489f70a55368b,
1861+ 0xeadab0aba3b2dbe5, 0x2b45ac74ccea842e,
1862+ 0x92c8ae6b464fc96f, 0x3b0b8bc90012929d,
1863+ 0xb77ada0617e3bbcb, 0x9ce6ebb40173744,
1864+ 0xe55990879ddcaabd, 0xcc420a6a101d0515,
1865+ 0x8f57fa54c2a9eab6, 0x9fa946824a12232d,
1866+ 0xb32df8e9f3546564, 0x47939822dc96abf9,
1867+ 0xdff9772470297ebd, 0x59787e2b93bc56f7,
1868+ 0x8bfbea76c619ef36, 0x57eb4edb3c55b65a,
1869+ 0xaefae51477a06b03, 0xede622920b6b23f1,
1870+ 0xdab99e59958885c4, 0xe95fab368e45eced,
1871+ 0x88b402f7fd75539b, 0x11dbcb0218ebb414,
1872+ 0xaae103b5fcd2a881, 0xd652bdc29f26a119,
1873+ 0xd59944a37c0752a2, 0x4be76d3346f0495f,
1874+ 0x857fcae62d8493a5, 0x6f70a4400c562ddb,
1875+ 0xa6dfbd9fb8e5b88e, 0xcb4ccd500f6bb952,
1876+ 0xd097ad07a71f26b2, 0x7e2000a41346a7a7,
1877+ 0x825ecc24c873782f, 0x8ed400668c0c28c8,
1878+ 0xa2f67f2dfa90563b, 0x728900802f0f32fa,
1879+ 0xcbb41ef979346bca, 0x4f2b40a03ad2ffb9,
1880+ 0xfea126b7d78186bc, 0xe2f610c84987bfa8,
1881+ 0x9f24b832e6b0f436, 0xdd9ca7d2df4d7c9,
1882+ 0xc6ede63fa05d3143, 0x91503d1c79720dbb,
1883+ 0xf8a95fcf88747d94, 0x75a44c6397ce912a,
1884+ 0x9b69dbe1b548ce7c, 0xc986afbe3ee11aba,
1885+ 0xc24452da229b021b, 0xfbe85badce996168,
1886+ 0xf2d56790ab41c2a2, 0xfae27299423fb9c3,
1887+ 0x97c560ba6b0919a5, 0xdccd879fc967d41a,
1888+ 0xbdb6b8e905cb600f, 0x5400e987bbc1c920,
1889+ 0xed246723473e3813, 0x290123e9aab23b68,
1890+ 0x9436c0760c86e30b, 0xf9a0b6720aaf6521,
1891+ 0xb94470938fa89bce, 0xf808e40e8d5b3e69,
1892+ 0xe7958cb87392c2c2, 0xb60b1d1230b20e04,
1893+ 0x90bd77f3483bb9b9, 0xb1c6f22b5e6f48c2,
1894+ 0xb4ecd5f01a4aa828, 0x1e38aeb6360b1af3,
1895+ 0xe2280b6c20dd5232, 0x25c6da63c38de1b0,
1896+ 0x8d590723948a535f, 0x579c487e5a38ad0e,
1897+ 0xb0af48ec79ace837, 0x2d835a9df0c6d851,
1898+ 0xdcdb1b2798182244, 0xf8e431456cf88e65,
1899+ 0x8a08f0f8bf0f156b, 0x1b8e9ecb641b58ff,
1900+ 0xac8b2d36eed2dac5, 0xe272467e3d222f3f,
1901+ 0xd7adf884aa879177, 0x5b0ed81dcc6abb0f,
1902+ 0x86ccbb52ea94baea, 0x98e947129fc2b4e9,
1903+ 0xa87fea27a539e9a5, 0x3f2398d747b36224,
1904+ 0xd29fe4b18e88640e, 0x8eec7f0d19a03aad,
1905+ 0x83a3eeeef9153e89, 0x1953cf68300424ac,
1906+ 0xa48ceaaab75a8e2b, 0x5fa8c3423c052dd7,
1907+ 0xcdb02555653131b6, 0x3792f412cb06794d,
1908+ 0x808e17555f3ebf11, 0xe2bbd88bbee40bd0,
1909+ 0xa0b19d2ab70e6ed6, 0x5b6aceaeae9d0ec4,
1910+ 0xc8de047564d20a8b, 0xf245825a5a445275,
1911+ 0xfb158592be068d2e, 0xeed6e2f0f0d56712,
1912+ 0x9ced737bb6c4183d, 0x55464dd69685606b,
1913+ 0xc428d05aa4751e4c, 0xaa97e14c3c26b886,
1914+ 0xf53304714d9265df, 0xd53dd99f4b3066a8,
1915+ 0x993fe2c6d07b7fab, 0xe546a8038efe4029,
1916+ 0xbf8fdb78849a5f96, 0xde98520472bdd033,
1917+ 0xef73d256a5c0f77c, 0x963e66858f6d4440,
1918+ 0x95a8637627989aad, 0xdde7001379a44aa8,
1919+ 0xbb127c53b17ec159, 0x5560c018580d5d52,
1920+ 0xe9d71b689dde71af, 0xaab8f01e6e10b4a6,
1921+ 0x9226712162ab070d, 0xcab3961304ca70e8,
1922+ 0xb6b00d69bb55c8d1, 0x3d607b97c5fd0d22,
1923+ 0xe45c10c42a2b3b05, 0x8cb89a7db77c506a,
1924+ 0x8eb98a7a9a5b04e3, 0x77f3608e92adb242,
1925+ 0xb267ed1940f1c61c, 0x55f038b237591ed3,
1926+ 0xdf01e85f912e37a3, 0x6b6c46dec52f6688,
1927+ 0x8b61313bbabce2c6, 0x2323ac4b3b3da015,
1928+ 0xae397d8aa96c1b77, 0xabec975e0a0d081a,
1929+ 0xd9c7dced53c72255, 0x96e7bd358c904a21,
1930+ 0x881cea14545c7575, 0x7e50d64177da2e54,
1931+ 0xaa242499697392d2, 0xdde50bd1d5d0b9e9,
1932+ 0xd4ad2dbfc3d07787, 0x955e4ec64b44e864,
1933+ 0x84ec3c97da624ab4, 0xbd5af13bef0b113e,
1934+ 0xa6274bbdd0fadd61, 0xecb1ad8aeacdd58e,
1935+ 0xcfb11ead453994ba, 0x67de18eda5814af2,
1936+ 0x81ceb32c4b43fcf4, 0x80eacf948770ced7,
1937+ 0xa2425ff75e14fc31, 0xa1258379a94d028d,
1938+ 0xcad2f7f5359a3b3e, 0x96ee45813a04330,
1939+ 0xfd87b5f28300ca0d, 0x8bca9d6e188853fc,
1940+ 0x9e74d1b791e07e48, 0x775ea264cf55347e,
1941+ 0xc612062576589dda, 0x95364afe032a819e,
1942+ 0xf79687aed3eec551, 0x3a83ddbd83f52205,
1943+ 0x9abe14cd44753b52, 0xc4926a9672793543,
1944+ 0xc16d9a0095928a27, 0x75b7053c0f178294,
1945+ 0xf1c90080baf72cb1, 0x5324c68b12dd6339,
1946+ 0x971da05074da7bee, 0xd3f6fc16ebca5e04,
1947+ 0xbce5086492111aea, 0x88f4bb1ca6bcf585,
1948+ 0xec1e4a7db69561a5, 0x2b31e9e3d06c32e6,
1949+ 0x9392ee8e921d5d07, 0x3aff322e62439fd0,
1950+ 0xb877aa3236a4b449, 0x9befeb9fad487c3,
1951+ 0xe69594bec44de15b, 0x4c2ebe687989a9b4,
1952+ 0x901d7cf73ab0acd9, 0xf9d37014bf60a11,
1953+ 0xb424dc35095cd80f, 0x538484c19ef38c95,
1954+ 0xe12e13424bb40e13, 0x2865a5f206b06fba,
1955+ 0x8cbccc096f5088cb, 0xf93f87b7442e45d4,
1956+ 0xafebff0bcb24aafe, 0xf78f69a51539d749,
1957+ 0xdbe6fecebdedd5be, 0xb573440e5a884d1c,
1958+ 0x89705f4136b4a597, 0x31680a88f8953031,
1959+ 0xabcc77118461cefc, 0xfdc20d2b36ba7c3e,
1960+ 0xd6bf94d5e57a42bc, 0x3d32907604691b4d,
1961+ 0x8637bd05af6c69b5, 0xa63f9a49c2c1b110,
1962+ 0xa7c5ac471b478423, 0xfcf80dc33721d54,
1963+ 0xd1b71758e219652b, 0xd3c36113404ea4a9,
1964+ 0x83126e978d4fdf3b, 0x645a1cac083126ea,
1965+ 0xa3d70a3d70a3d70a, 0x3d70a3d70a3d70a4,
1966+ 0xcccccccccccccccc, 0xcccccccccccccccd,
1967+ 0x8000000000000000, 0x0,
1968+ 0xa000000000000000, 0x0,
1969+ 0xc800000000000000, 0x0,
1970+ 0xfa00000000000000, 0x0,
1971+ 0x9c40000000000000, 0x0,
1972+ 0xc350000000000000, 0x0,
1973+ 0xf424000000000000, 0x0,
1974+ 0x9896800000000000, 0x0,
1975+ 0xbebc200000000000, 0x0,
1976+ 0xee6b280000000000, 0x0,
1977+ 0x9502f90000000000, 0x0,
1978+ 0xba43b74000000000, 0x0,
1979+ 0xe8d4a51000000000, 0x0,
1980+ 0x9184e72a00000000, 0x0,
1981+ 0xb5e620f480000000, 0x0,
1982+ 0xe35fa931a0000000, 0x0,
1983+ 0x8e1bc9bf04000000, 0x0,
1984+ 0xb1a2bc2ec5000000, 0x0,
1985+ 0xde0b6b3a76400000, 0x0,
1986+ 0x8ac7230489e80000, 0x0,
1987+ 0xad78ebc5ac620000, 0x0,
1988+ 0xd8d726b7177a8000, 0x0,
1989+ 0x878678326eac9000, 0x0,
1990+ 0xa968163f0a57b400, 0x0,
1991+ 0xd3c21bcecceda100, 0x0,
1992+ 0x84595161401484a0, 0x0,
1993+ 0xa56fa5b99019a5c8, 0x0,
1994+ 0xcecb8f27f4200f3a, 0x0,
1995+ 0x813f3978f8940984, 0x4000000000000000,
1996+ 0xa18f07d736b90be5, 0x5000000000000000,
1997+ 0xc9f2c9cd04674ede, 0xa400000000000000,
1998+ 0xfc6f7c4045812296, 0x4d00000000000000,
1999+ 0x9dc5ada82b70b59d, 0xf020000000000000,
2000+ 0xc5371912364ce305, 0x6c28000000000000,
2001+ 0xf684df56c3e01bc6, 0xc732000000000000,
2002+ 0x9a130b963a6c115c, 0x3c7f400000000000,
2003+ 0xc097ce7bc90715b3, 0x4b9f100000000000,
2004+ 0xf0bdc21abb48db20, 0x1e86d40000000000,
2005+ 0x96769950b50d88f4, 0x1314448000000000,
2006+ 0xbc143fa4e250eb31, 0x17d955a000000000,
2007+ 0xeb194f8e1ae525fd, 0x5dcfab0800000000,
2008+ 0x92efd1b8d0cf37be, 0x5aa1cae500000000,
2009+ 0xb7abc627050305ad, 0xf14a3d9e40000000,
2010+ 0xe596b7b0c643c719, 0x6d9ccd05d0000000,
2011+ 0x8f7e32ce7bea5c6f, 0xe4820023a2000000,
2012+ 0xb35dbf821ae4f38b, 0xdda2802c8a800000,
2013+ 0xe0352f62a19e306e, 0xd50b2037ad200000,
2014+ 0x8c213d9da502de45, 0x4526f422cc340000,
2015+ 0xaf298d050e4395d6, 0x9670b12b7f410000,
2016+ 0xdaf3f04651d47b4c, 0x3c0cdd765f114000,
2017+ 0x88d8762bf324cd0f, 0xa5880a69fb6ac800,
2018+ 0xab0e93b6efee0053, 0x8eea0d047a457a00,
2019+ 0xd5d238a4abe98068, 0x72a4904598d6d880,
2020+ 0x85a36366eb71f041, 0x47a6da2b7f864750,
2021+ 0xa70c3c40a64e6c51, 0x999090b65f67d924,
2022+ 0xd0cf4b50cfe20765, 0xfff4b4e3f741cf6d,
2023+ 0x82818f1281ed449f, 0xbff8f10e7a8921a4,
2024+ 0xa321f2d7226895c7, 0xaff72d52192b6a0d,
2025+ 0xcbea6f8ceb02bb39, 0x9bf4f8a69f764490,
2026+ 0xfee50b7025c36a08, 0x2f236d04753d5b4,
2027+ 0x9f4f2726179a2245, 0x1d762422c946590,
2028+ 0xc722f0ef9d80aad6, 0x424d3ad2b7b97ef5,
2029+ 0xf8ebad2b84e0d58b, 0xd2e0898765a7deb2,
2030+ 0x9b934c3b330c8577, 0x63cc55f49f88eb2f,
2031+ 0xc2781f49ffcfa6d5, 0x3cbf6b71c76b25fb,
2032+ 0xf316271c7fc3908a, 0x8bef464e3945ef7a,
2033+ 0x97edd871cfda3a56, 0x97758bf0e3cbb5ac,
2034+ 0xbde94e8e43d0c8ec, 0x3d52eeed1cbea317,
2035+ 0xed63a231d4c4fb27, 0x4ca7aaa863ee4bdd,
2036+ 0x945e455f24fb1cf8, 0x8fe8caa93e74ef6a,
2037+ 0xb975d6b6ee39e436, 0xb3e2fd538e122b44,
2038+ 0xe7d34c64a9c85d44, 0x60dbbca87196b616,
2039+ 0x90e40fbeea1d3a4a, 0xbc8955e946fe31cd,
2040+ 0xb51d13aea4a488dd, 0x6babab6398bdbe41,
2041+ 0xe264589a4dcdab14, 0xc696963c7eed2dd1,
2042+ 0x8d7eb76070a08aec, 0xfc1e1de5cf543ca2,
2043+ 0xb0de65388cc8ada8, 0x3b25a55f43294bcb,
2044+ 0xdd15fe86affad912, 0x49ef0eb713f39ebe,
2045+ 0x8a2dbf142dfcc7ab, 0x6e3569326c784337,
2046+ 0xacb92ed9397bf996, 0x49c2c37f07965404,
2047+ 0xd7e77a8f87daf7fb, 0xdc33745ec97be906,
2048+ 0x86f0ac99b4e8dafd, 0x69a028bb3ded71a3,
2049+ 0xa8acd7c0222311bc, 0xc40832ea0d68ce0c,
2050+ 0xd2d80db02aabd62b, 0xf50a3fa490c30190,
2051+ 0x83c7088e1aab65db, 0x792667c6da79e0fa,
2052+ 0xa4b8cab1a1563f52, 0x577001b891185938,
2053+ 0xcde6fd5e09abcf26, 0xed4c0226b55e6f86,
2054+ 0x80b05e5ac60b6178, 0x544f8158315b05b4,
2055+ 0xa0dc75f1778e39d6, 0x696361ae3db1c721,
2056+ 0xc913936dd571c84c, 0x3bc3a19cd1e38e9,
2057+ 0xfb5878494ace3a5f, 0x4ab48a04065c723,
2058+ 0x9d174b2dcec0e47b, 0x62eb0d64283f9c76,
2059+ 0xc45d1df942711d9a, 0x3ba5d0bd324f8394,
2060+ 0xf5746577930d6500, 0xca8f44ec7ee36479,
2061+ 0x9968bf6abbe85f20, 0x7e998b13cf4e1ecb,
2062+ 0xbfc2ef456ae276e8, 0x9e3fedd8c321a67e,
2063+ 0xefb3ab16c59b14a2, 0xc5cfe94ef3ea101e,
2064+ 0x95d04aee3b80ece5, 0xbba1f1d158724a12,
2065+ 0xbb445da9ca61281f, 0x2a8a6e45ae8edc97,
2066+ 0xea1575143cf97226, 0xf52d09d71a3293bd,
2067+ 0x924d692ca61be758, 0x593c2626705f9c56,
2068+ 0xb6e0c377cfa2e12e, 0x6f8b2fb00c77836c,
2069+ 0xe498f455c38b997a, 0xb6dfb9c0f956447,
2070+ 0x8edf98b59a373fec, 0x4724bd4189bd5eac,
2071+ 0xb2977ee300c50fe7, 0x58edec91ec2cb657,
2072+ 0xdf3d5e9bc0f653e1, 0x2f2967b66737e3ed,
2073+ 0x8b865b215899f46c, 0xbd79e0d20082ee74,
2074+ 0xae67f1e9aec07187, 0xecd8590680a3aa11,
2075+ 0xda01ee641a708de9, 0xe80e6f4820cc9495,
2076+ 0x884134fe908658b2, 0x3109058d147fdcdd,
2077+ 0xaa51823e34a7eede, 0xbd4b46f0599fd415,
2078+ 0xd4e5e2cdc1d1ea96, 0x6c9e18ac7007c91a,
2079+ 0x850fadc09923329e, 0x3e2cf6bc604ddb0,
2080+ 0xa6539930bf6bff45, 0x84db8346b786151c,
2081+ 0xcfe87f7cef46ff16, 0xe612641865679a63,
2082+ 0x81f14fae158c5f6e, 0x4fcb7e8f3f60c07e,
2083+ 0xa26da3999aef7749, 0xe3be5e330f38f09d,
2084+ 0xcb090c8001ab551c, 0x5cadf5bfd3072cc5,
2085+ 0xfdcb4fa002162a63, 0x73d9732fc7c8f7f6,
2086+ 0x9e9f11c4014dda7e, 0x2867e7fddcdd9afa,
2087+ 0xc646d63501a1511d, 0xb281e1fd541501b8,
2088+ 0xf7d88bc24209a565, 0x1f225a7ca91a4226,
2089+ 0x9ae757596946075f, 0x3375788de9b06958,
2090+ 0xc1a12d2fc3978937, 0x52d6b1641c83ae,
2091+ 0xf209787bb47d6b84, 0xc0678c5dbd23a49a,
2092+ 0x9745eb4d50ce6332, 0xf840b7ba963646e0,
2093+ 0xbd176620a501fbff, 0xb650e5a93bc3d898,
2094+ 0xec5d3fa8ce427aff, 0xa3e51f138ab4cebe,
2095+ 0x93ba47c980e98cdf, 0xc66f336c36b10137,
2096+ 0xb8a8d9bbe123f017, 0xb80b0047445d4184,
2097+ 0xe6d3102ad96cec1d, 0xa60dc059157491e5,
2098+ 0x9043ea1ac7e41392, 0x87c89837ad68db2f,
2099+ 0xb454e4a179dd1877, 0x29babe4598c311fb,
2100+ 0xe16a1dc9d8545e94, 0xf4296dd6fef3d67a,
2101+ 0x8ce2529e2734bb1d, 0x1899e4a65f58660c,
2102+ 0xb01ae745b101e9e4, 0x5ec05dcff72e7f8f,
2103+ 0xdc21a1171d42645d, 0x76707543f4fa1f73,
2104+ 0x899504ae72497eba, 0x6a06494a791c53a8,
2105+ 0xabfa45da0edbde69, 0x487db9d17636892,
2106+ 0xd6f8d7509292d603, 0x45a9d2845d3c42b6,
2107+ 0x865b86925b9bc5c2, 0xb8a2392ba45a9b2,
2108+ 0xa7f26836f282b732, 0x8e6cac7768d7141e,
2109+ 0xd1ef0244af2364ff, 0x3207d795430cd926,
2110+ 0x8335616aed761f1f, 0x7f44e6bd49e807b8,
2111+ 0xa402b9c5a8d3a6e7, 0x5f16206c9c6209a6,
2112+ 0xcd036837130890a1, 0x36dba887c37a8c0f,
2113+ 0x802221226be55a64, 0xc2494954da2c9789,
2114+ 0xa02aa96b06deb0fd, 0xf2db9baa10b7bd6c,
2115+ 0xc83553c5c8965d3d, 0x6f92829494e5acc7,
2116+ 0xfa42a8b73abbf48c, 0xcb772339ba1f17f9,
2117+ 0x9c69a97284b578d7, 0xff2a760414536efb,
2118+ 0xc38413cf25e2d70d, 0xfef5138519684aba,
2119+ 0xf46518c2ef5b8cd1, 0x7eb258665fc25d69,
2120+ 0x98bf2f79d5993802, 0xef2f773ffbd97a61,
2121+ 0xbeeefb584aff8603, 0xaafb550ffacfd8fa,
2122+ 0xeeaaba2e5dbf6784, 0x95ba2a53f983cf38,
2123+ 0x952ab45cfa97a0b2, 0xdd945a747bf26183,
2124+ 0xba756174393d88df, 0x94f971119aeef9e4,
2125+ 0xe912b9d1478ceb17, 0x7a37cd5601aab85d,
2126+ 0x91abb422ccb812ee, 0xac62e055c10ab33a,
2127+ 0xb616a12b7fe617aa, 0x577b986b314d6009,
2128+ 0xe39c49765fdf9d94, 0xed5a7e85fda0b80b,
2129+ 0x8e41ade9fbebc27d, 0x14588f13be847307,
2130+ 0xb1d219647ae6b31c, 0x596eb2d8ae258fc8,
2131+ 0xde469fbd99a05fe3, 0x6fca5f8ed9aef3bb,
2132+ 0x8aec23d680043bee, 0x25de7bb9480d5854,
2133+ 0xada72ccc20054ae9, 0xaf561aa79a10ae6a,
2134+ 0xd910f7ff28069da4, 0x1b2ba1518094da04,
2135+ 0x87aa9aff79042286, 0x90fb44d2f05d0842,
2136+ 0xa99541bf57452b28, 0x353a1607ac744a53,
2137+ 0xd3fa922f2d1675f2, 0x42889b8997915ce8,
2138+ 0x847c9b5d7c2e09b7, 0x69956135febada11,
2139+ 0xa59bc234db398c25, 0x43fab9837e699095,
2140+ 0xcf02b2c21207ef2e, 0x94f967e45e03f4bb,
2141+ 0x8161afb94b44f57d, 0x1d1be0eebac278f5,
2142+ 0xa1ba1ba79e1632dc, 0x6462d92a69731732,
2143+ 0xca28a291859bbf93, 0x7d7b8f7503cfdcfe,
2144+ 0xfcb2cb35e702af78, 0x5cda735244c3d43e,
2145+ 0x9defbf01b061adab, 0x3a0888136afa64a7,
2146+ 0xc56baec21c7a1916, 0x88aaa1845b8fdd0,
2147+ 0xf6c69a72a3989f5b, 0x8aad549e57273d45,
2148+ 0x9a3c2087a63f6399, 0x36ac54e2f678864b,
2149+ 0xc0cb28a98fcf3c7f, 0x84576a1bb416a7dd,
2150+ 0xf0fdf2d3f3c30b9f, 0x656d44a2a11c51d5,
2151+ 0x969eb7c47859e743, 0x9f644ae5a4b1b325,
2152+ 0xbc4665b596706114, 0x873d5d9f0dde1fee,
2153+ 0xeb57ff22fc0c7959, 0xa90cb506d155a7ea,
2154+ 0x9316ff75dd87cbd8, 0x9a7f12442d588f2,
2155+ 0xb7dcbf5354e9bece, 0xc11ed6d538aeb2f,
2156+ 0xe5d3ef282a242e81, 0x8f1668c8a86da5fa,
2157+ 0x8fa475791a569d10, 0xf96e017d694487bc,
2158+ 0xb38d92d760ec4455, 0x37c981dcc395a9ac,
2159+ 0xe070f78d3927556a, 0x85bbe253f47b1417,
2160+ 0x8c469ab843b89562, 0x93956d7478ccec8e,
2161+ 0xaf58416654a6babb, 0x387ac8d1970027b2,
2162+ 0xdb2e51bfe9d0696a, 0x6997b05fcc0319e,
2163+ 0x88fcf317f22241e2, 0x441fece3bdf81f03,
2164+ 0xab3c2fddeeaad25a, 0xd527e81cad7626c3,
2165+ 0xd60b3bd56a5586f1, 0x8a71e223d8d3b074,
2166+ 0x85c7056562757456, 0xf6872d5667844e49,
2167+ 0xa738c6bebb12d16c, 0xb428f8ac016561db,
2168+ 0xd106f86e69d785c7, 0xe13336d701beba52,
2169+ 0x82a45b450226b39c, 0xecc0024661173473,
2170+ 0xa34d721642b06084, 0x27f002d7f95d0190,
2171+ 0xcc20ce9bd35c78a5, 0x31ec038df7b441f4,
2172+ 0xff290242c83396ce, 0x7e67047175a15271,
2173+ 0x9f79a169bd203e41, 0xf0062c6e984d386,
2174+ 0xc75809c42c684dd1, 0x52c07b78a3e60868,
2175+ 0xf92e0c3537826145, 0xa7709a56ccdf8a82,
2176+ 0x9bbcc7a142b17ccb, 0x88a66076400bb691,
2177+ 0xc2abf989935ddbfe, 0x6acff893d00ea435,
2178+ 0xf356f7ebf83552fe, 0x583f6b8c4124d43,
2179+ 0x98165af37b2153de, 0xc3727a337a8b704a,
2180+ 0xbe1bf1b059e9a8d6, 0x744f18c0592e4c5c,
2181+ 0xeda2ee1c7064130c, 0x1162def06f79df73,
2182+ 0x9485d4d1c63e8be7, 0x8addcb5645ac2ba8,
2183+ 0xb9a74a0637ce2ee1, 0x6d953e2bd7173692,
2184+ 0xe8111c87c5c1ba99, 0xc8fa8db6ccdd0437,
2185+ 0x910ab1d4db9914a0, 0x1d9c9892400a22a2,
2186+ 0xb54d5e4a127f59c8, 0x2503beb6d00cab4b,
2187+ 0xe2a0b5dc971f303a, 0x2e44ae64840fd61d,
2188+ 0x8da471a9de737e24, 0x5ceaecfed289e5d2,
2189+ 0xb10d8e1456105dad, 0x7425a83e872c5f47,
2190+ 0xdd50f1996b947518, 0xd12f124e28f77719,
2191+ 0x8a5296ffe33cc92f, 0x82bd6b70d99aaa6f,
2192+ 0xace73cbfdc0bfb7b, 0x636cc64d1001550b,
2193+ 0xd8210befd30efa5a, 0x3c47f7e05401aa4e,
2194+ 0x8714a775e3e95c78, 0x65acfaec34810a71,
2195+ 0xa8d9d1535ce3b396, 0x7f1839a741a14d0d,
2196+ 0xd31045a8341ca07c, 0x1ede48111209a050,
2197+ 0x83ea2b892091e44d, 0x934aed0aab460432,
2198+ 0xa4e4b66b68b65d60, 0xf81da84d5617853f,
2199+ 0xce1de40642e3f4b9, 0x36251260ab9d668e,
2200+ 0x80d2ae83e9ce78f3, 0xc1d72b7c6b426019,
2201+ 0xa1075a24e4421730, 0xb24cf65b8612f81f,
2202+ 0xc94930ae1d529cfc, 0xdee033f26797b627,
2203+ 0xfb9b7cd9a4a7443c, 0x169840ef017da3b1,
2204+ 0x9d412e0806e88aa5, 0x8e1f289560ee864e,
2205+ 0xc491798a08a2ad4e, 0xf1a6f2bab92a27e2,
2206+ 0xf5b5d7ec8acb58a2, 0xae10af696774b1db,
2207+ 0x9991a6f3d6bf1765, 0xacca6da1e0a8ef29,
2208+ 0xbff610b0cc6edd3f, 0x17fd090a58d32af3,
2209+ 0xeff394dcff8a948e, 0xddfc4b4cef07f5b0,
2210+ 0x95f83d0a1fb69cd9, 0x4abdaf101564f98e,
2211+ 0xbb764c4ca7a4440f, 0x9d6d1ad41abe37f1,
2212+ 0xea53df5fd18d5513, 0x84c86189216dc5ed,
2213+ 0x92746b9be2f8552c, 0x32fd3cf5b4e49bb4,
2214+ 0xb7118682dbb66a77, 0x3fbc8c33221dc2a1,
2215+ 0xe4d5e82392a40515, 0xfabaf3feaa5334a,
2216+ 0x8f05b1163ba6832d, 0x29cb4d87f2a7400e,
2217+ 0xb2c71d5bca9023f8, 0x743e20e9ef511012,
2218+ 0xdf78e4b2bd342cf6, 0x914da9246b255416,
2219+ 0x8bab8eefb6409c1a, 0x1ad089b6c2f7548e,
2220+ 0xae9672aba3d0c320, 0xa184ac2473b529b1,
2221+ 0xda3c0f568cc4f3e8, 0xc9e5d72d90a2741e,
2222+ 0x8865899617fb1871, 0x7e2fa67c7a658892,
2223+ 0xaa7eebfb9df9de8d, 0xddbb901b98feeab7,
2224+ 0xd51ea6fa85785631, 0x552a74227f3ea565,
2225+ 0x8533285c936b35de, 0xd53a88958f87275f,
2226+ 0xa67ff273b8460356, 0x8a892abaf368f137,
2227+ 0xd01fef10a657842c, 0x2d2b7569b0432d85,
2228+ 0x8213f56a67f6b29b, 0x9c3b29620e29fc73,
2229+ 0xa298f2c501f45f42, 0x8349f3ba91b47b8f,
2230+ 0xcb3f2f7642717713, 0x241c70a936219a73,
2231+ 0xfe0efb53d30dd4d7, 0xed238cd383aa0110,
2232+ 0x9ec95d1463e8a506, 0xf4363804324a40aa,
2233+ 0xc67bb4597ce2ce48, 0xb143c6053edcd0d5,
2234+ 0xf81aa16fdc1b81da, 0xdd94b7868e94050a,
2235+ 0x9b10a4e5e9913128, 0xca7cf2b4191c8326,
2236+ 0xc1d4ce1f63f57d72, 0xfd1c2f611f63a3f0,
2237+ 0xf24a01a73cf2dccf, 0xbc633b39673c8cec,
2238+ 0x976e41088617ca01, 0xd5be0503e085d813,
2239+ 0xbd49d14aa79dbc82, 0x4b2d8644d8a74e18,
2240+ 0xec9c459d51852ba2, 0xddf8e7d60ed1219e,
2241+ 0x93e1ab8252f33b45, 0xcabb90e5c942b503,
2242+ 0xb8da1662e7b00a17, 0x3d6a751f3b936243,
2243+ 0xe7109bfba19c0c9d, 0xcc512670a783ad4,
2244+ 0x906a617d450187e2, 0x27fb2b80668b24c5,
2245+ 0xb484f9dc9641e9da, 0xb1f9f660802dedf6,
2246+ 0xe1a63853bbd26451, 0x5e7873f8a0396973,
2247+ 0x8d07e33455637eb2, 0xdb0b487b6423e1e8,
2248+ 0xb049dc016abc5e5f, 0x91ce1a9a3d2cda62,
2249+ 0xdc5c5301c56b75f7, 0x7641a140cc7810fb,
2250+ 0x89b9b3e11b6329ba, 0xa9e904c87fcb0a9d,
2251+ 0xac2820d9623bf429, 0x546345fa9fbdcd44,
2252+ 0xd732290fbacaf133, 0xa97c177947ad4095,
2253+ 0x867f59a9d4bed6c0, 0x49ed8eabcccc485d,
2254+ 0xa81f301449ee8c70, 0x5c68f256bfff5a74,
2255+ 0xd226fc195c6a2f8c, 0x73832eec6fff3111,
2256+ 0x83585d8fd9c25db7, 0xc831fd53c5ff7eab,
2257+ 0xa42e74f3d032f525, 0xba3e7ca8b77f5e55,
2258+ 0xcd3a1230c43fb26f, 0x28ce1bd2e55f35eb,
2259+ 0x80444b5e7aa7cf85, 0x7980d163cf5b81b3,
2260+ 0xa0555e361951c366, 0xd7e105bcc332621f,
2261+ 0xc86ab5c39fa63440, 0x8dd9472bf3fefaa7,
2262+ 0xfa856334878fc150, 0xb14f98f6f0feb951,
2263+ 0x9c935e00d4b9d8d2, 0x6ed1bf9a569f33d3,
2264+ 0xc3b8358109e84f07, 0xa862f80ec4700c8,
2265+ 0xf4a642e14c6262c8, 0xcd27bb612758c0fa,
2266+ 0x98e7e9cccfbd7dbd, 0x8038d51cb897789c,
2267+ 0xbf21e44003acdd2c, 0xe0470a63e6bd56c3,
2268+ 0xeeea5d5004981478, 0x1858ccfce06cac74,
2269+ 0x95527a5202df0ccb, 0xf37801e0c43ebc8,
2270+ 0xbaa718e68396cffd, 0xd30560258f54e6ba,
2271+ 0xe950df20247c83fd, 0x47c6b82ef32a2069,
2272+ 0x91d28b7416cdd27e, 0x4cdc331d57fa5441,
2273+ 0xb6472e511c81471d, 0xe0133fe4adf8e952,
2274+ 0xe3d8f9e563a198e5, 0x58180fddd97723a6,
2275+ 0x8e679c2f5e44ff8f, 0x570f09eaa7ea7648,
2276+ };
2277+};
2278+
2279+#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE
2280+
2281+template <class unused>
2282+constexpr uint64_t
2283+ powers_template<unused>::power_of_five_128[number_of_entries];
2284+
2285+#endif
2286+
2287+using powers = powers_template<>;
2288+
2289+} // namespace fast_float
2290+
2291+#endif
2292+
2293+#ifndef FASTFLOAT_DECIMAL_TO_BINARY_H
2294+#define FASTFLOAT_DECIMAL_TO_BINARY_H
2295+
2296+#include <cfloat>
2297+#include <cinttypes>
2298+#include <cmath>
2299+#include <cstdint>
2300+#include <cstdlib>
2301+#include <cstring>
2302+
2303+namespace fast_float {
2304+
2305+// This will compute or rather approximate w * 5**q and return a pair of 64-bit
2306+// words approximating the result, with the "high" part corresponding to the
2307+// most significant bits and the low part corresponding to the least significant
2308+// bits.
2309+//
2310+template <int bit_precision>
2311+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 value128
2312+compute_product_approximation(int64_t q, uint64_t w) {
2313+ const int index = 2 * int(q - powers::smallest_power_of_five);
2314+ // For small values of q, e.g., q in [0,27], the answer is always exact
2315+ // because The line value128 firstproduct = full_multiplication(w,
2316+ // power_of_five_128[index]); gives the exact answer.
2317+ value128 firstproduct =
2318+ full_multiplication(w, powers::power_of_five_128[index]);
2319+ static_assert((bit_precision >= 0) && (bit_precision <= 64),
2320+ " precision should be in (0,64]");
2321+ constexpr uint64_t precision_mask =
2322+ (bit_precision < 64) ? (uint64_t(0xFFFFFFFFFFFFFFFF) >> bit_precision)
2323+ : uint64_t(0xFFFFFFFFFFFFFFFF);
2324+ if ((firstproduct.high & precision_mask) ==
2325+ precision_mask) { // could further guard with (lower + w < lower)
2326+ // regarding the second product, we only need secondproduct.high, but our
2327+ // expectation is that the compiler will optimize this extra work away if
2328+ // needed.
2329+ value128 secondproduct =
2330+ full_multiplication(w, powers::power_of_five_128[index + 1]);
2331+ firstproduct.low += secondproduct.high;
2332+ if (secondproduct.high > firstproduct.low) {
2333+ firstproduct.high++;
2334+ }
2335+ }
2336+ return firstproduct;
2337+}
2338+
2339+namespace detail {
2340+/**
2341+ * For q in (0,350), we have that
2342+ * f = (((152170 + 65536) * q ) >> 16);
2343+ * is equal to
2344+ * floor(p) + q
2345+ * where
2346+ * p = log(5**q)/log(2) = q * log(5)/log(2)
2347+ *
2348+ * For negative values of q in (-400,0), we have that
2349+ * f = (((152170 + 65536) * q ) >> 16);
2350+ * is equal to
2351+ * -ceil(p) + q
2352+ * where
2353+ * p = log(5**-q)/log(2) = -q * log(5)/log(2)
2354+ */
2355+constexpr fastfloat_really_inline int32_t power(int32_t q) noexcept {
2356+ return (((152170 + 65536) * q) >> 16) + 63;
2357+}
2358+} // namespace detail
2359+
2360+// create an adjusted mantissa, biased by the invalid power2
2361+// for significant digits already multiplied by 10 ** q.
2362+template <typename binary>
2363+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 adjusted_mantissa
2364+compute_error_scaled(int64_t q, uint64_t w, int lz) noexcept {
2365+ int hilz = int(w >> 63) ^ 1;
2366+ adjusted_mantissa answer;
2367+ answer.mantissa = w << hilz;
2368+ int bias = binary::mantissa_explicit_bits() - binary::minimum_exponent();
2369+ answer.power2 = int32_t(detail::power(int32_t(q)) + bias - hilz - lz - 62 +
2370+ invalid_am_bias);
2371+ return answer;
2372+}
2373+
2374+// w * 10 ** q, without rounding the representation up.
2375+// the power2 in the exponent will be adjusted by invalid_am_bias.
2376+template <typename binary>
2377+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa
2378+compute_error(int64_t q, uint64_t w) noexcept {
2379+ int lz = leading_zeroes(w);
2380+ w <<= lz;
2381+ value128 product =
2382+ compute_product_approximation<binary::mantissa_explicit_bits() + 3>(q, w);
2383+ return compute_error_scaled<binary>(q, product.high, lz);
2384+}
2385+
2386+// w * 10 ** q
2387+// The returned value should be a valid ieee64 number that simply need to be
2388+// packed. However, in some very rare cases, the computation will fail. In such
2389+// cases, we return an adjusted_mantissa with a negative power of 2: the caller
2390+// should recompute in such cases.
2391+template <typename binary>
2392+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa
2393+compute_float(int64_t q, uint64_t w) noexcept {
2394+ adjusted_mantissa answer;
2395+ if ((w == 0) || (q < binary::smallest_power_of_ten())) {
2396+ answer.power2 = 0;
2397+ answer.mantissa = 0;
2398+ // result should be zero
2399+ return answer;
2400+ }
2401+ if (q > binary::largest_power_of_ten()) {
2402+ // we want to get infinity:
2403+ answer.power2 = binary::infinite_power();
2404+ answer.mantissa = 0;
2405+ return answer;
2406+ }
2407+ // At this point in time q is in [powers::smallest_power_of_five,
2408+ // powers::largest_power_of_five].
2409+
2410+ // We want the most significant bit of i to be 1. Shift if needed.
2411+ int lz = leading_zeroes(w);
2412+ w <<= lz;
2413+
2414+ // The required precision is binary::mantissa_explicit_bits() + 3 because
2415+ // 1. We need the implicit bit
2416+ // 2. We need an extra bit for rounding purposes
2417+ // 3. We might lose a bit due to the "upperbit" routine (result too small,
2418+ // requiring a shift)
2419+
2420+ value128 product =
2421+ compute_product_approximation<binary::mantissa_explicit_bits() + 3>(q, w);
2422+ // The computed 'product' is always sufficient.
2423+ // Mathematical proof:
2424+ // Noble Mushtak and Daniel Lemire, Fast Number Parsing Without Fallback (to
2425+ // appear) See script/mushtak_lemire.py
2426+
2427+ // The "compute_product_approximation" function can be slightly slower than a
2428+ // branchless approach: value128 product = compute_product(q, w); but in
2429+ // practice, we can win big with the compute_product_approximation if its
2430+ // additional branch is easily predicted. Which is best is data specific.
2431+ int upperbit = int(product.high >> 63);
2432+ int shift = upperbit + 64 - binary::mantissa_explicit_bits() - 3;
2433+
2434+ answer.mantissa = product.high >> shift;
2435+
2436+ answer.power2 = int32_t(detail::power(int32_t(q)) + upperbit - lz -
2437+ binary::minimum_exponent());
2438+ if (answer.power2 <= 0) { // we have a subnormal?
2439+ // Here have that answer.power2 <= 0 so -answer.power2 >= 0
2440+ if (-answer.power2 + 1 >=
2441+ 64) { // if we have more than 64 bits below the minimum exponent, you
2442+ // have a zero for sure.
2443+ answer.power2 = 0;
2444+ answer.mantissa = 0;
2445+ // result should be zero
2446+ return answer;
2447+ }
2448+ // next line is safe because -answer.power2 + 1 < 64
2449+ answer.mantissa >>= -answer.power2 + 1;
2450+ // Thankfully, we can't have both "round-to-even" and subnormals because
2451+ // "round-to-even" only occurs for powers close to 0.
2452+ answer.mantissa += (answer.mantissa & 1); // round up
2453+ answer.mantissa >>= 1;
2454+ // There is a weird scenario where we don't have a subnormal but just.
2455+ // Suppose we start with 2.2250738585072013e-308, we end up
2456+ // with 0x3fffffffffffff x 2^-1023-53 which is technically subnormal
2457+ // whereas 0x40000000000000 x 2^-1023-53 is normal. Now, we need to round
2458+ // up 0x3fffffffffffff x 2^-1023-53 and once we do, we are no longer
2459+ // subnormal, but we can only know this after rounding.
2460+ // So we only declare a subnormal if we are smaller than the threshold.
2461+ answer.power2 =
2462+ (answer.mantissa < (uint64_t(1) << binary::mantissa_explicit_bits()))
2463+ ? 0
2464+ : 1;
2465+ return answer;
2466+ }
2467+
2468+ // usually, we round *up*, but if we fall right in between and and we have an
2469+ // even basis, we need to round down
2470+ // We are only concerned with the cases where 5**q fits in single 64-bit word.
2471+ if ((product.low <= 1) && (q >= binary::min_exponent_round_to_even()) &&
2472+ (q <= binary::max_exponent_round_to_even()) &&
2473+ ((answer.mantissa & 3) == 1)) { // we may fall between two floats!
2474+ // To be in-between two floats we need that in doing
2475+ // answer.mantissa = product.high >> (upperbit + 64 -
2476+ // binary::mantissa_explicit_bits() - 3);
2477+ // ... we dropped out only zeroes. But if this happened, then we can go
2478+ // back!!!
2479+ if ((answer.mantissa << shift) == product.high) {
2480+ answer.mantissa &= ~uint64_t(1); // flip it so that we do not round up
2481+ }
2482+ }
2483+
2484+ answer.mantissa += (answer.mantissa & 1); // round up
2485+ answer.mantissa >>= 1;
2486+ if (answer.mantissa >= (uint64_t(2) << binary::mantissa_explicit_bits())) {
2487+ answer.mantissa = (uint64_t(1) << binary::mantissa_explicit_bits());
2488+ answer.power2++; // undo previous addition
2489+ }
2490+
2491+ answer.mantissa &= ~(uint64_t(1) << binary::mantissa_explicit_bits());
2492+ if (answer.power2 >= binary::infinite_power()) { // infinity
2493+ answer.power2 = binary::infinite_power();
2494+ answer.mantissa = 0;
2495+ }
2496+ return answer;
2497+}
2498+
2499+} // namespace fast_float
2500+
2501+#endif
2502+
2503+#ifndef FASTFLOAT_BIGINT_H
2504+#define FASTFLOAT_BIGINT_H
2505+
2506+#include <algorithm>
2507+#include <cstdint>
2508+#include <climits>
2509+#include <cstring>
2510+
2511+
2512+namespace fast_float {
2513+
2514+// the limb width: we want efficient multiplication of double the bits in
2515+// limb, or for 64-bit limbs, at least 64-bit multiplication where we can
2516+// extract the high and low parts efficiently. this is every 64-bit
2517+// architecture except for sparc, which emulates 128-bit multiplication.
2518+// we might have platforms where `CHAR_BIT` is not 8, so let's avoid
2519+// doing `8 * sizeof(limb)`.
2520+#if defined(FASTFLOAT_64BIT) && !defined(__sparc)
2521+#define FASTFLOAT_64BIT_LIMB 1
2522+typedef uint64_t limb;
2523+constexpr size_t limb_bits = 64;
2524+#else
2525+#define FASTFLOAT_32BIT_LIMB
2526+typedef uint32_t limb;
2527+constexpr size_t limb_bits = 32;
2528+#endif
2529+
2530+typedef span<limb> limb_span;
2531+
2532+// number of bits in a bigint. this needs to be at least the number
2533+// of bits required to store the largest bigint, which is
2534+// `log2(10**(digits + max_exp))`, or `log2(10**(767 + 342))`, or
2535+// ~3600 bits, so we round to 4000.
2536+constexpr size_t bigint_bits = 4000;
2537+constexpr size_t bigint_limbs = bigint_bits / limb_bits;
2538+
2539+// vector-like type that is allocated on the stack. the entire
2540+// buffer is pre-allocated, and only the length changes.
2541+template <uint16_t size> struct stackvec {
2542+ limb data[size];
2543+ // we never need more than 150 limbs
2544+ uint16_t length{0};
2545+
2546+ stackvec() = default;
2547+ stackvec(const stackvec &) = delete;
2548+ stackvec &operator=(const stackvec &) = delete;
2549+ stackvec(stackvec &&) = delete;
2550+ stackvec &operator=(stackvec &&other) = delete;
2551+
2552+ // create stack vector from existing limb span.
2553+ FASTFLOAT_CONSTEXPR20 stackvec(limb_span s) {
2554+ FASTFLOAT_ASSERT(try_extend(s));
2555+ }
2556+
2557+ FASTFLOAT_CONSTEXPR14 limb &operator[](size_t index) noexcept {
2558+ FASTFLOAT_DEBUG_ASSERT(index < length);
2559+ return data[index];
2560+ }
2561+ FASTFLOAT_CONSTEXPR14 const limb &operator[](size_t index) const noexcept {
2562+ FASTFLOAT_DEBUG_ASSERT(index < length);
2563+ return data[index];
2564+ }
2565+ // index from the end of the container
2566+ FASTFLOAT_CONSTEXPR14 const limb &rindex(size_t index) const noexcept {
2567+ FASTFLOAT_DEBUG_ASSERT(index < length);
2568+ size_t rindex = length - index - 1;
2569+ return data[rindex];
2570+ }
2571+
2572+ // set the length, without bounds checking.
2573+ FASTFLOAT_CONSTEXPR14 void set_len(size_t len) noexcept {
2574+ length = uint16_t(len);
2575+ }
2576+ constexpr size_t len() const noexcept { return length; }
2577+ constexpr bool is_empty() const noexcept { return length == 0; }
2578+ constexpr size_t capacity() const noexcept { return size; }
2579+ // append item to vector, without bounds checking
2580+ FASTFLOAT_CONSTEXPR14 void push_unchecked(limb value) noexcept {
2581+ data[length] = value;
2582+ length++;
2583+ }
2584+ // append item to vector, returning if item was added
2585+ FASTFLOAT_CONSTEXPR14 bool try_push(limb value) noexcept {
2586+ if (len() < capacity()) {
2587+ push_unchecked(value);
2588+ return true;
2589+ } else {
2590+ return false;
2591+ }
2592+ }
2593+ // add items to the vector, from a span, without bounds checking
2594+ FASTFLOAT_CONSTEXPR20 void extend_unchecked(limb_span s) noexcept {
2595+ limb *ptr = data + length;
2596+ std::copy_n(s.ptr, s.len(), ptr);
2597+ set_len(len() + s.len());
2598+ }
2599+ // try to add items to the vector, returning if items were added
2600+ FASTFLOAT_CONSTEXPR20 bool try_extend(limb_span s) noexcept {
2601+ if (len() + s.len() <= capacity()) {
2602+ extend_unchecked(s);
2603+ return true;
2604+ } else {
2605+ return false;
2606+ }
2607+ }
2608+ // resize the vector, without bounds checking
2609+ // if the new size is longer than the vector, assign value to each
2610+ // appended item.
2611+ FASTFLOAT_CONSTEXPR20
2612+ void resize_unchecked(size_t new_len, limb value) noexcept {
2613+ if (new_len > len()) {
2614+ size_t count = new_len - len();
2615+ limb *first = data + len();
2616+ limb *last = first + count;
2617+ ::std::fill(first, last, value);
2618+ set_len(new_len);
2619+ } else {
2620+ set_len(new_len);
2621+ }
2622+ }
2623+ // try to resize the vector, returning if the vector was resized.
2624+ FASTFLOAT_CONSTEXPR20 bool try_resize(size_t new_len, limb value) noexcept {
2625+ if (new_len > capacity()) {
2626+ return false;
2627+ } else {
2628+ resize_unchecked(new_len, value);
2629+ return true;
2630+ }
2631+ }
2632+ // check if any limbs are non-zero after the given index.
2633+ // this needs to be done in reverse order, since the index
2634+ // is relative to the most significant limbs.
2635+ FASTFLOAT_CONSTEXPR14 bool nonzero(size_t index) const noexcept {
2636+ while (index < len()) {
2637+ if (rindex(index) != 0) {
2638+ return true;
2639+ }
2640+ index++;
2641+ }
2642+ return false;
2643+ }
2644+ // normalize the big integer, so most-significant zero limbs are removed.
2645+ FASTFLOAT_CONSTEXPR14 void normalize() noexcept {
2646+ while (len() > 0 && rindex(0) == 0) {
2647+ length--;
2648+ }
2649+ }
2650+};
2651+
2652+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 uint64_t
2653+empty_hi64(bool &truncated) noexcept {
2654+ truncated = false;
2655+ return 0;
2656+}
2657+
2658+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t
2659+uint64_hi64(uint64_t r0, bool &truncated) noexcept {
2660+ truncated = false;
2661+ int shl = leading_zeroes(r0);
2662+ return r0 << shl;
2663+}
2664+
2665+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t
2666+uint64_hi64(uint64_t r0, uint64_t r1, bool &truncated) noexcept {
2667+ int shl = leading_zeroes(r0);
2668+ if (shl == 0) {
2669+ truncated = r1 != 0;
2670+ return r0;
2671+ } else {
2672+ int shr = 64 - shl;
2673+ truncated = (r1 << shl) != 0;
2674+ return (r0 << shl) | (r1 >> shr);
2675+ }
2676+}
2677+
2678+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t
2679+uint32_hi64(uint32_t r0, bool &truncated) noexcept {
2680+ return uint64_hi64(r0, truncated);
2681+}
2682+
2683+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t
2684+uint32_hi64(uint32_t r0, uint32_t r1, bool &truncated) noexcept {
2685+ uint64_t x0 = r0;
2686+ uint64_t x1 = r1;
2687+ return uint64_hi64((x0 << 32) | x1, truncated);
2688+}
2689+
2690+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 uint64_t
2691+uint32_hi64(uint32_t r0, uint32_t r1, uint32_t r2, bool &truncated) noexcept {
2692+ uint64_t x0 = r0;
2693+ uint64_t x1 = r1;
2694+ uint64_t x2 = r2;
2695+ return uint64_hi64(x0, (x1 << 32) | x2, truncated);
2696+}
2697+
2698+// add two small integers, checking for overflow.
2699+// we want an efficient operation. for msvc, where
2700+// we don't have built-in intrinsics, this is still
2701+// pretty fast.
2702+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 limb
2703+scalar_add(limb x, limb y, bool &overflow) noexcept {
2704+ limb z;
2705+// gcc and clang
2706+#if defined(__has_builtin)
2707+#if __has_builtin(__builtin_add_overflow)
2708+ if (!cpp20_and_in_constexpr()) {
2709+ overflow = __builtin_add_overflow(x, y, &z);
2710+ return z;
2711+ }
2712+#endif
2713+#endif
2714+
2715+ // generic, this still optimizes correctly on MSVC.
2716+ z = x + y;
2717+ overflow = z < x;
2718+ return z;
2719+}
2720+
2721+// multiply two small integers, getting both the high and low bits.
2722+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 limb
2723+scalar_mul(limb x, limb y, limb &carry) noexcept {
2724+#ifdef FASTFLOAT_64BIT_LIMB
2725+#if defined(__SIZEOF_INT128__)
2726+ // GCC and clang both define it as an extension.
2727+ __uint128_t z = __uint128_t(x) * __uint128_t(y) + __uint128_t(carry);
2728+ carry = limb(z >> limb_bits);
2729+ return limb(z);
2730+#else
2731+ // fallback, no native 128-bit integer multiplication with carry.
2732+ // on msvc, this optimizes identically, somehow.
2733+ value128 z = full_multiplication(x, y);
2734+ bool overflow;
2735+ z.low = scalar_add(z.low, carry, overflow);
2736+ z.high += uint64_t(overflow); // cannot overflow
2737+ carry = z.high;
2738+ return z.low;
2739+#endif
2740+#else
2741+ uint64_t z = uint64_t(x) * uint64_t(y) + uint64_t(carry);
2742+ carry = limb(z >> limb_bits);
2743+ return limb(z);
2744+#endif
2745+}
2746+
2747+// add scalar value to bigint starting from offset.
2748+// used in grade school multiplication
2749+template <uint16_t size>
2750+inline FASTFLOAT_CONSTEXPR20 bool small_add_from(stackvec<size> &vec, limb y,
2751+ size_t start) noexcept {
2752+ size_t index = start;
2753+ limb carry = y;
2754+ bool overflow;
2755+ while (carry != 0 && index < vec.len()) {
2756+ vec[index] = scalar_add(vec[index], carry, overflow);
2757+ carry = limb(overflow);
2758+ index += 1;
2759+ }
2760+ if (carry != 0) {
2761+ FASTFLOAT_TRY(vec.try_push(carry));
2762+ }
2763+ return true;
2764+}
2765+
2766+// add scalar value to bigint.
2767+template <uint16_t size>
2768+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool
2769+small_add(stackvec<size> &vec, limb y) noexcept {
2770+ return small_add_from(vec, y, 0);
2771+}
2772+
2773+// multiply bigint by scalar value.
2774+template <uint16_t size>
2775+inline FASTFLOAT_CONSTEXPR20 bool small_mul(stackvec<size> &vec,
2776+ limb y) noexcept {
2777+ limb carry = 0;
2778+ for (size_t index = 0; index < vec.len(); index++) {
2779+ vec[index] = scalar_mul(vec[index], y, carry);
2780+ }
2781+ if (carry != 0) {
2782+ FASTFLOAT_TRY(vec.try_push(carry));
2783+ }
2784+ return true;
2785+}
2786+
2787+// add bigint to bigint starting from index.
2788+// used in grade school multiplication
2789+template <uint16_t size>
2790+FASTFLOAT_CONSTEXPR20 bool large_add_from(stackvec<size> &x, limb_span y,
2791+ size_t start) noexcept {
2792+ // the effective x buffer is from `xstart..x.len()`, so exit early
2793+ // if we can't get that current range.
2794+ if (x.len() < start || y.len() > x.len() - start) {
2795+ FASTFLOAT_TRY(x.try_resize(y.len() + start, 0));
2796+ }
2797+
2798+ bool carry = false;
2799+ for (size_t index = 0; index < y.len(); index++) {
2800+ limb xi = x[index + start];
2801+ limb yi = y[index];
2802+ bool c1 = false;
2803+ bool c2 = false;
2804+ xi = scalar_add(xi, yi, c1);
2805+ if (carry) {
2806+ xi = scalar_add(xi, 1, c2);
2807+ }
2808+ x[index + start] = xi;
2809+ carry = c1 | c2;
2810+ }
2811+
2812+ // handle overflow
2813+ if (carry) {
2814+ FASTFLOAT_TRY(small_add_from(x, 1, y.len() + start));
2815+ }
2816+ return true;
2817+}
2818+
2819+// add bigint to bigint.
2820+template <uint16_t size>
2821+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool
2822+large_add_from(stackvec<size> &x, limb_span y) noexcept {
2823+ return large_add_from(x, y, 0);
2824+}
2825+
2826+// grade-school multiplication algorithm
2827+template <uint16_t size>
2828+FASTFLOAT_CONSTEXPR20 bool long_mul(stackvec<size> &x, limb_span y) noexcept {
2829+ limb_span xs = limb_span(x.data, x.len());
2830+ stackvec<size> z(xs);
2831+ limb_span zs = limb_span(z.data, z.len());
2832+
2833+ if (y.len() != 0) {
2834+ limb y0 = y[0];
2835+ FASTFLOAT_TRY(small_mul(x, y0));
2836+ for (size_t index = 1; index < y.len(); index++) {
2837+ limb yi = y[index];
2838+ stackvec<size> zi;
2839+ if (yi != 0) {
2840+ // re-use the same buffer throughout
2841+ zi.set_len(0);
2842+ FASTFLOAT_TRY(zi.try_extend(zs));
2843+ FASTFLOAT_TRY(small_mul(zi, yi));
2844+ limb_span zis = limb_span(zi.data, zi.len());
2845+ FASTFLOAT_TRY(large_add_from(x, zis, index));
2846+ }
2847+ }
2848+ }
2849+
2850+ x.normalize();
2851+ return true;
2852+}
2853+
2854+// grade-school multiplication algorithm
2855+template <uint16_t size>
2856+FASTFLOAT_CONSTEXPR20 bool large_mul(stackvec<size> &x, limb_span y) noexcept {
2857+ if (y.len() == 1) {
2858+ FASTFLOAT_TRY(small_mul(x, y[0]));
2859+ } else {
2860+ FASTFLOAT_TRY(long_mul(x, y));
2861+ }
2862+ return true;
2863+}
2864+
2865+template <typename = void> struct pow5_tables {
2866+ static constexpr uint32_t large_step = 135;
2867+ static constexpr uint64_t small_power_of_5[] = {
2868+ 1UL,
2869+ 5UL,
2870+ 25UL,
2871+ 125UL,
2872+ 625UL,
2873+ 3125UL,
2874+ 15625UL,
2875+ 78125UL,
2876+ 390625UL,
2877+ 1953125UL,
2878+ 9765625UL,
2879+ 48828125UL,
2880+ 244140625UL,
2881+ 1220703125UL,
2882+ 6103515625UL,
2883+ 30517578125UL,
2884+ 152587890625UL,
2885+ 762939453125UL,
2886+ 3814697265625UL,
2887+ 19073486328125UL,
2888+ 95367431640625UL,
2889+ 476837158203125UL,
2890+ 2384185791015625UL,
2891+ 11920928955078125UL,
2892+ 59604644775390625UL,
2893+ 298023223876953125UL,
2894+ 1490116119384765625UL,
2895+ 7450580596923828125UL,
2896+ };
2897+#ifdef FASTFLOAT_64BIT_LIMB
2898+ constexpr static limb large_power_of_5[] = {
2899+ 1414648277510068013UL, 9180637584431281687UL, 4539964771860779200UL,
2900+ 10482974169319127550UL, 198276706040285095UL};
2901+#else
2902+ constexpr static limb large_power_of_5[] = {
2903+ 4279965485U, 329373468U, 4020270615U, 2137533757U, 4287402176U,
2904+ 1057042919U, 1071430142U, 2440757623U, 381945767U, 46164893U};
2905+#endif
2906+};
2907+
2908+#if FASTFLOAT_DETAIL_MUST_DEFINE_CONSTEXPR_VARIABLE
2909+
2910+template <typename T> constexpr uint32_t pow5_tables<T>::large_step;
2911+
2912+template <typename T> constexpr uint64_t pow5_tables<T>::small_power_of_5[];
2913+
2914+template <typename T> constexpr limb pow5_tables<T>::large_power_of_5[];
2915+
2916+#endif
2917+
2918+// big integer type. implements a small subset of big integer
2919+// arithmetic, using simple algorithms since asymptotically
2920+// faster algorithms are slower for a small number of limbs.
2921+// all operations assume the big-integer is normalized.
2922+struct bigint : pow5_tables<> {
2923+ // storage of the limbs, in little-endian order.
2924+ stackvec<bigint_limbs> vec;
2925+
2926+ FASTFLOAT_CONSTEXPR20 bigint() : vec() {}
2927+ bigint(const bigint &) = delete;
2928+ bigint &operator=(const bigint &) = delete;
2929+ bigint(bigint &&) = delete;
2930+ bigint &operator=(bigint &&other) = delete;
2931+
2932+ FASTFLOAT_CONSTEXPR20 bigint(uint64_t value) : vec() {
2933+#ifdef FASTFLOAT_64BIT_LIMB
2934+ vec.push_unchecked(value);
2935+#else
2936+ vec.push_unchecked(uint32_t(value));
2937+ vec.push_unchecked(uint32_t(value >> 32));
2938+#endif
2939+ vec.normalize();
2940+ }
2941+
2942+ // get the high 64 bits from the vector, and if bits were truncated.
2943+ // this is to get the significant digits for the float.
2944+ FASTFLOAT_CONSTEXPR20 uint64_t hi64(bool &truncated) const noexcept {
2945+#ifdef FASTFLOAT_64BIT_LIMB
2946+ if (vec.len() == 0) {
2947+ return empty_hi64(truncated);
2948+ } else if (vec.len() == 1) {
2949+ return uint64_hi64(vec.rindex(0), truncated);
2950+ } else {
2951+ uint64_t result = uint64_hi64(vec.rindex(0), vec.rindex(1), truncated);
2952+ truncated |= vec.nonzero(2);
2953+ return result;
2954+ }
2955+#else
2956+ if (vec.len() == 0) {
2957+ return empty_hi64(truncated);
2958+ } else if (vec.len() == 1) {
2959+ return uint32_hi64(vec.rindex(0), truncated);
2960+ } else if (vec.len() == 2) {
2961+ return uint32_hi64(vec.rindex(0), vec.rindex(1), truncated);
2962+ } else {
2963+ uint64_t result =
2964+ uint32_hi64(vec.rindex(0), vec.rindex(1), vec.rindex(2), truncated);
2965+ truncated |= vec.nonzero(3);
2966+ return result;
2967+ }
2968+#endif
2969+ }
2970+
2971+ // compare two big integers, returning the large value.
2972+ // assumes both are normalized. if the return value is
2973+ // negative, other is larger, if the return value is
2974+ // positive, this is larger, otherwise they are equal.
2975+ // the limbs are stored in little-endian order, so we
2976+ // must compare the limbs in ever order.
2977+ FASTFLOAT_CONSTEXPR20 int compare(const bigint &other) const noexcept {
2978+ if (vec.len() > other.vec.len()) {
2979+ return 1;
2980+ } else if (vec.len() < other.vec.len()) {
2981+ return -1;
2982+ } else {
2983+ for (size_t index = vec.len(); index > 0; index--) {
2984+ limb xi = vec[index - 1];
2985+ limb yi = other.vec[index - 1];
2986+ if (xi > yi) {
2987+ return 1;
2988+ } else if (xi < yi) {
2989+ return -1;
2990+ }
2991+ }
2992+ return 0;
2993+ }
2994+ }
2995+
2996+ // shift left each limb n bits, carrying over to the new limb
2997+ // returns true if we were able to shift all the digits.
2998+ FASTFLOAT_CONSTEXPR20 bool shl_bits(size_t n) noexcept {
2999+ // Internally, for each item, we shift left by n, and add the previous
3000+ // right shifted limb-bits.
3001+ // For example, we transform (for u8) shifted left 2, to:
3002+ // b10100100 b01000010
3003+ // b10 b10010001 b00001000
3004+ FASTFLOAT_DEBUG_ASSERT(n != 0);
3005+ FASTFLOAT_DEBUG_ASSERT(n < sizeof(limb) * 8);
3006+
3007+ size_t shl = n;
3008+ size_t shr = limb_bits - shl;
3009+ limb prev = 0;
3010+ for (size_t index = 0; index < vec.len(); index++) {
3011+ limb xi = vec[index];
3012+ vec[index] = (xi << shl) | (prev >> shr);
3013+ prev = xi;
3014+ }
3015+
3016+ limb carry = prev >> shr;
3017+ if (carry != 0) {
3018+ return vec.try_push(carry);
3019+ }
3020+ return true;
3021+ }
3022+
3023+ // move the limbs left by `n` limbs.
3024+ FASTFLOAT_CONSTEXPR20 bool shl_limbs(size_t n) noexcept {
3025+ FASTFLOAT_DEBUG_ASSERT(n != 0);
3026+ if (n + vec.len() > vec.capacity()) {
3027+ return false;
3028+ } else if (!vec.is_empty()) {
3029+ // move limbs
3030+ limb *dst = vec.data + n;
3031+ const limb *src = vec.data;
3032+ std::copy_backward(src, src + vec.len(), dst + vec.len());
3033+ // fill in empty limbs
3034+ limb *first = vec.data;
3035+ limb *last = first + n;
3036+ ::std::fill(first, last, 0);
3037+ vec.set_len(n + vec.len());
3038+ return true;
3039+ } else {
3040+ return true;
3041+ }
3042+ }
3043+
3044+ // move the limbs left by `n` bits.
3045+ FASTFLOAT_CONSTEXPR20 bool shl(size_t n) noexcept {
3046+ size_t rem = n % limb_bits;
3047+ size_t div = n / limb_bits;
3048+ if (rem != 0) {
3049+ FASTFLOAT_TRY(shl_bits(rem));
3050+ }
3051+ if (div != 0) {
3052+ FASTFLOAT_TRY(shl_limbs(div));
3053+ }
3054+ return true;
3055+ }
3056+
3057+ // get the number of leading zeros in the bigint.
3058+ FASTFLOAT_CONSTEXPR20 int ctlz() const noexcept {
3059+ if (vec.is_empty()) {
3060+ return 0;
3061+ } else {
3062+#ifdef FASTFLOAT_64BIT_LIMB
3063+ return leading_zeroes(vec.rindex(0));
3064+#else
3065+ // no use defining a specialized leading_zeroes for a 32-bit type.
3066+ uint64_t r0 = vec.rindex(0);
3067+ return leading_zeroes(r0 << 32);
3068+#endif
3069+ }
3070+ }
3071+
3072+ // get the number of bits in the bigint.
3073+ FASTFLOAT_CONSTEXPR20 int bit_length() const noexcept {
3074+ int lz = ctlz();
3075+ return int(limb_bits * vec.len()) - lz;
3076+ }
3077+
3078+ FASTFLOAT_CONSTEXPR20 bool mul(limb y) noexcept { return small_mul(vec, y); }
3079+
3080+ FASTFLOAT_CONSTEXPR20 bool add(limb y) noexcept { return small_add(vec, y); }
3081+
3082+ // multiply as if by 2 raised to a power.
3083+ FASTFLOAT_CONSTEXPR20 bool pow2(uint32_t exp) noexcept { return shl(exp); }
3084+
3085+ // multiply as if by 5 raised to a power.
3086+ FASTFLOAT_CONSTEXPR20 bool pow5(uint32_t exp) noexcept {
3087+ // multiply by a power of 5
3088+ size_t large_length = sizeof(large_power_of_5) / sizeof(limb);
3089+ limb_span large = limb_span(large_power_of_5, large_length);
3090+ while (exp >= large_step) {
3091+ FASTFLOAT_TRY(large_mul(vec, large));
3092+ exp -= large_step;
3093+ }
3094+#ifdef FASTFLOAT_64BIT_LIMB
3095+ uint32_t small_step = 27;
3096+ limb max_native = 7450580596923828125UL;
3097+#else
3098+ uint32_t small_step = 13;
3099+ limb max_native = 1220703125U;
3100+#endif
3101+ while (exp >= small_step) {
3102+ FASTFLOAT_TRY(small_mul(vec, max_native));
3103+ exp -= small_step;
3104+ }
3105+ if (exp != 0) {
3106+ // Work around clang bug https://godbolt.org/z/zedh7rrhc
3107+ // This is similar to https://github.com/llvm/llvm-project/issues/47746,
3108+ // except the workaround described there don't work here
3109+ FASTFLOAT_TRY(small_mul(
3110+ vec, limb(((void)small_power_of_5[0], small_power_of_5[exp]))));
3111+ }
3112+
3113+ return true;
3114+ }
3115+
3116+ // multiply as if by 10 raised to a power.
3117+ FASTFLOAT_CONSTEXPR20 bool pow10(uint32_t exp) noexcept {
3118+ FASTFLOAT_TRY(pow5(exp));
3119+ return pow2(exp);
3120+ }
3121+};
3122+
3123+} // namespace fast_float
3124+
3125+#endif
3126+
3127+#ifndef FASTFLOAT_DIGIT_COMPARISON_H
3128+#define FASTFLOAT_DIGIT_COMPARISON_H
3129+
3130+#include <algorithm>
3131+#include <cstdint>
3132+#include <cstring>
3133+#include <iterator>
3134+
3135+
3136+namespace fast_float {
3137+
3138+// 1e0 to 1e19
3139+constexpr static uint64_t powers_of_ten_uint64[] = {1UL,
3140+ 10UL,
3141+ 100UL,
3142+ 1000UL,
3143+ 10000UL,
3144+ 100000UL,
3145+ 1000000UL,
3146+ 10000000UL,
3147+ 100000000UL,
3148+ 1000000000UL,
3149+ 10000000000UL,
3150+ 100000000000UL,
3151+ 1000000000000UL,
3152+ 10000000000000UL,
3153+ 100000000000000UL,
3154+ 1000000000000000UL,
3155+ 10000000000000000UL,
3156+ 100000000000000000UL,
3157+ 1000000000000000000UL,
3158+ 10000000000000000000UL};
3159+
3160+// calculate the exponent, in scientific notation, of the number.
3161+// this algorithm is not even close to optimized, but it has no practical
3162+// effect on performance: in order to have a faster algorithm, we'd need
3163+// to slow down performance for faster algorithms, and this is still fast.
3164+template <typename UC>
3165+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 int32_t
3166+scientific_exponent(parsed_number_string_t<UC> &num) noexcept {
3167+ uint64_t mantissa = num.mantissa;
3168+ int32_t exponent = int32_t(num.exponent);
3169+ while (mantissa >= 10000) {
3170+ mantissa /= 10000;
3171+ exponent += 4;
3172+ }
3173+ while (mantissa >= 100) {
3174+ mantissa /= 100;
3175+ exponent += 2;
3176+ }
3177+ while (mantissa >= 10) {
3178+ mantissa /= 10;
3179+ exponent += 1;
3180+ }
3181+ return exponent;
3182+}
3183+
3184+// this converts a native floating-point number to an extended-precision float.
3185+template <typename T>
3186+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa
3187+to_extended(T value) noexcept {
3188+ using equiv_uint = typename binary_format<T>::equiv_uint;
3189+ constexpr equiv_uint exponent_mask = binary_format<T>::exponent_mask();
3190+ constexpr equiv_uint mantissa_mask = binary_format<T>::mantissa_mask();
3191+ constexpr equiv_uint hidden_bit_mask = binary_format<T>::hidden_bit_mask();
3192+
3193+ adjusted_mantissa am;
3194+ int32_t bias = binary_format<T>::mantissa_explicit_bits() -
3195+ binary_format<T>::minimum_exponent();
3196+ equiv_uint bits;
3197+#if FASTFLOAT_HAS_BIT_CAST
3198+ bits = std::bit_cast<equiv_uint>(value);
3199+#else
3200+ ::memcpy(&bits, &value, sizeof(T));
3201+#endif
3202+ if ((bits & exponent_mask) == 0) {
3203+ // denormal
3204+ am.power2 = 1 - bias;
3205+ am.mantissa = bits & mantissa_mask;
3206+ } else {
3207+ // normal
3208+ am.power2 = int32_t((bits & exponent_mask) >>
3209+ binary_format<T>::mantissa_explicit_bits());
3210+ am.power2 -= bias;
3211+ am.mantissa = (bits & mantissa_mask) | hidden_bit_mask;
3212+ }
3213+
3214+ return am;
3215+}
3216+
3217+// get the extended precision value of the halfway point between b and b+u.
3218+// we are given a native float that represents b, so we need to adjust it
3219+// halfway between b and b+u.
3220+template <typename T>
3221+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa
3222+to_extended_halfway(T value) noexcept {
3223+ adjusted_mantissa am = to_extended(value);
3224+ am.mantissa <<= 1;
3225+ am.mantissa += 1;
3226+ am.power2 -= 1;
3227+ return am;
3228+}
3229+
3230+// round an extended-precision float to the nearest machine float.
3231+template <typename T, typename callback>
3232+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 void round(adjusted_mantissa &am,
3233+ callback cb) noexcept {
3234+ int32_t mantissa_shift = 64 - binary_format<T>::mantissa_explicit_bits() - 1;
3235+ if (-am.power2 >= mantissa_shift) {
3236+ // have a denormal float
3237+ int32_t shift = -am.power2 + 1;
3238+ cb(am, std::min<int32_t>(shift, 64));
3239+ // check for round-up: if rounding-nearest carried us to the hidden bit.
3240+ am.power2 = (am.mantissa <
3241+ (uint64_t(1) << binary_format<T>::mantissa_explicit_bits()))
3242+ ? 0
3243+ : 1;
3244+ return;
3245+ }
3246+
3247+ // have a normal float, use the default shift.
3248+ cb(am, mantissa_shift);
3249+
3250+ // check for carry
3251+ if (am.mantissa >=
3252+ (uint64_t(2) << binary_format<T>::mantissa_explicit_bits())) {
3253+ am.mantissa = (uint64_t(1) << binary_format<T>::mantissa_explicit_bits());
3254+ am.power2++;
3255+ }
3256+
3257+ // check for infinite: we could have carried to an infinite power
3258+ am.mantissa &= ~(uint64_t(1) << binary_format<T>::mantissa_explicit_bits());
3259+ if (am.power2 >= binary_format<T>::infinite_power()) {
3260+ am.power2 = binary_format<T>::infinite_power();
3261+ am.mantissa = 0;
3262+ }
3263+}
3264+
3265+template <typename callback>
3266+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 void
3267+round_nearest_tie_even(adjusted_mantissa &am, int32_t shift,
3268+ callback cb) noexcept {
3269+ const uint64_t mask = (shift == 64) ? UINT64_MAX : (uint64_t(1) << shift) - 1;
3270+ const uint64_t halfway = (shift == 0) ? 0 : uint64_t(1) << (shift - 1);
3271+ uint64_t truncated_bits = am.mantissa & mask;
3272+ bool is_above = truncated_bits > halfway;
3273+ bool is_halfway = truncated_bits == halfway;
3274+
3275+ // shift digits into position
3276+ if (shift == 64) {
3277+ am.mantissa = 0;
3278+ } else {
3279+ am.mantissa >>= shift;
3280+ }
3281+ am.power2 += shift;
3282+
3283+ bool is_odd = (am.mantissa & 1) == 1;
3284+ am.mantissa += uint64_t(cb(is_odd, is_halfway, is_above));
3285+}
3286+
3287+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 void
3288+round_down(adjusted_mantissa &am, int32_t shift) noexcept {
3289+ if (shift == 64) {
3290+ am.mantissa = 0;
3291+ } else {
3292+ am.mantissa >>= shift;
3293+ }
3294+ am.power2 += shift;
3295+}
3296+template <typename UC>
3297+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void
3298+skip_zeros(UC const *&first, UC const *last) noexcept {
3299+ uint64_t val;
3300+ while (!cpp20_and_in_constexpr() &&
3301+ std::distance(first, last) >= int_cmp_len<UC>()) {
3302+ ::memcpy(&val, first, sizeof(uint64_t));
3303+ if (val != int_cmp_zeros<UC>()) {
3304+ break;
3305+ }
3306+ first += int_cmp_len<UC>();
3307+ }
3308+ while (first != last) {
3309+ if (*first != UC('0')) {
3310+ break;
3311+ }
3312+ first++;
3313+ }
3314+}
3315+
3316+// determine if any non-zero digits were truncated.
3317+// all characters must be valid digits.
3318+template <typename UC>
3319+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool
3320+is_truncated(UC const *first, UC const *last) noexcept {
3321+ // do 8-bit optimizations, can just compare to 8 literal 0s.
3322+ uint64_t val;
3323+ while (!cpp20_and_in_constexpr() &&
3324+ std::distance(first, last) >= int_cmp_len<UC>()) {
3325+ ::memcpy(&val, first, sizeof(uint64_t));
3326+ if (val != int_cmp_zeros<UC>()) {
3327+ return true;
3328+ }
3329+ first += int_cmp_len<UC>();
3330+ }
3331+ while (first != last) {
3332+ if (*first != UC('0')) {
3333+ return true;
3334+ }
3335+ ++first;
3336+ }
3337+ return false;
3338+}
3339+template <typename UC>
3340+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 bool
3341+is_truncated(span<const UC> s) noexcept {
3342+ return is_truncated(s.ptr, s.ptr + s.len());
3343+}
3344+
3345+template <typename UC>
3346+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void
3347+parse_eight_digits(const UC *&p, limb &value, size_t &counter,
3348+ size_t &count) noexcept {
3349+ value = value * 100000000 + parse_eight_digits_unrolled(p);
3350+ p += 8;
3351+ counter += 8;
3352+ count += 8;
3353+}
3354+
3355+template <typename UC>
3356+fastfloat_really_inline FASTFLOAT_CONSTEXPR14 void
3357+parse_one_digit(UC const *&p, limb &value, size_t &counter,
3358+ size_t &count) noexcept {
3359+ value = value * 10 + limb(*p - UC('0'));
3360+ p++;
3361+ counter++;
3362+ count++;
3363+}
3364+
3365+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void
3366+add_native(bigint &big, limb power, limb value) noexcept {
3367+ big.mul(power);
3368+ big.add(value);
3369+}
3370+
3371+fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void
3372+round_up_bigint(bigint &big, size_t &count) noexcept {
3373+ // need to round-up the digits, but need to avoid rounding
3374+ // ....9999 to ...10000, which could cause a false halfway point.
3375+ add_native(big, 10, 1);
3376+ count++;
3377+}
3378+
3379+// parse the significant digits into a big integer
3380+template <typename UC>
3381+inline FASTFLOAT_CONSTEXPR20 void
3382+parse_mantissa(bigint &result, parsed_number_string_t<UC> &num,
3383+ size_t max_digits, size_t &digits) noexcept {
3384+ // try to minimize the number of big integer and scalar multiplication.
3385+ // therefore, try to parse 8 digits at a time, and multiply by the largest
3386+ // scalar value (9 or 19 digits) for each step.
3387+ size_t counter = 0;
3388+ digits = 0;
3389+ limb value = 0;
3390+#ifdef FASTFLOAT_64BIT_LIMB
3391+ size_t step = 19;
3392+#else
3393+ size_t step = 9;
3394+#endif
3395+
3396+ // process all integer digits.
3397+ UC const *p = num.integer.ptr;
3398+ UC const *pend = p + num.integer.len();
3399+ skip_zeros(p, pend);
3400+ // process all digits, in increments of step per loop
3401+ while (p != pend) {
3402+ while ((std::distance(p, pend) >= 8) && (step - counter >= 8) &&
3403+ (max_digits - digits >= 8)) {
3404+ parse_eight_digits(p, value, counter, digits);
3405+ }
3406+ while (counter < step && p != pend && digits < max_digits) {
3407+ parse_one_digit(p, value, counter, digits);
3408+ }
3409+ if (digits == max_digits) {
3410+ // add the temporary value, then check if we've truncated any digits
3411+ add_native(result, limb(powers_of_ten_uint64[counter]), value);
3412+ bool truncated = is_truncated(p, pend);
3413+ if (num.fraction.ptr != nullptr) {
3414+ truncated |= is_truncated(num.fraction);
3415+ }
3416+ if (truncated) {
3417+ round_up_bigint(result, digits);
3418+ }
3419+ return;
3420+ } else {
3421+ add_native(result, limb(powers_of_ten_uint64[counter]), value);
3422+ counter = 0;
3423+ value = 0;
3424+ }
3425+ }
3426+
3427+ // add our fraction digits, if they're available.
3428+ if (num.fraction.ptr != nullptr) {
3429+ p = num.fraction.ptr;
3430+ pend = p + num.fraction.len();
3431+ if (digits == 0) {
3432+ skip_zeros(p, pend);
3433+ }
3434+ // process all digits, in increments of step per loop
3435+ while (p != pend) {
3436+ while ((std::distance(p, pend) >= 8) && (step - counter >= 8) &&
3437+ (max_digits - digits >= 8)) {
3438+ parse_eight_digits(p, value, counter, digits);
3439+ }
3440+ while (counter < step && p != pend && digits < max_digits) {
3441+ parse_one_digit(p, value, counter, digits);
3442+ }
3443+ if (digits == max_digits) {
3444+ // add the temporary value, then check if we've truncated any digits
3445+ add_native(result, limb(powers_of_ten_uint64[counter]), value);
3446+ bool truncated = is_truncated(p, pend);
3447+ if (truncated) {
3448+ round_up_bigint(result, digits);
3449+ }
3450+ return;
3451+ } else {
3452+ add_native(result, limb(powers_of_ten_uint64[counter]), value);
3453+ counter = 0;
3454+ value = 0;
3455+ }
3456+ }
3457+ }
3458+
3459+ if (counter != 0) {
3460+ add_native(result, limb(powers_of_ten_uint64[counter]), value);
3461+ }
3462+}
3463+
3464+template <typename T>
3465+inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa
3466+positive_digit_comp(bigint &bigmant, int32_t exponent) noexcept {
3467+ FASTFLOAT_ASSERT(bigmant.pow10(uint32_t(exponent)));
3468+ adjusted_mantissa answer;
3469+ bool truncated;
3470+ answer.mantissa = bigmant.hi64(truncated);
3471+ int bias = binary_format<T>::mantissa_explicit_bits() -
3472+ binary_format<T>::minimum_exponent();
3473+ answer.power2 = bigmant.bit_length() - 64 + bias;
3474+
3475+ round<T>(answer, [truncated](adjusted_mantissa &a, int32_t shift) {
3476+ round_nearest_tie_even(
3477+ a, shift,
3478+ [truncated](bool is_odd, bool is_halfway, bool is_above) -> bool {
3479+ return is_above || (is_halfway && truncated) ||
3480+ (is_odd && is_halfway);
3481+ });
3482+ });
3483+
3484+ return answer;
3485+}
3486+
3487+// the scaling here is quite simple: we have, for the real digits `m * 10^e`,
3488+// and for the theoretical digits `n * 2^f`. Since `e` is always negative,
3489+// to scale them identically, we do `n * 2^f * 5^-f`, so we now have `m * 2^e`.
3490+// we then need to scale by `2^(f- e)`, and then the two significant digits
3491+// are of the same magnitude.
3492+template <typename T>
3493+inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa negative_digit_comp(
3494+ bigint &bigmant, adjusted_mantissa am, int32_t exponent) noexcept {
3495+ bigint &real_digits = bigmant;
3496+ int32_t real_exp = exponent;
3497+
3498+ // get the value of `b`, rounded down, and get a bigint representation of b+h
3499+ adjusted_mantissa am_b = am;
3500+ // gcc7 buf: use a lambda to remove the noexcept qualifier bug with
3501+ // -Wnoexcept-type.
3502+ round<T>(am_b,
3503+ [](adjusted_mantissa &a, int32_t shift) { round_down(a, shift); });
3504+ T b;
3505+ to_float(false, am_b, b);
3506+ adjusted_mantissa theor = to_extended_halfway(b);
3507+ bigint theor_digits(theor.mantissa);
3508+ int32_t theor_exp = theor.power2;
3509+
3510+ // scale real digits and theor digits to be same power.
3511+ int32_t pow2_exp = theor_exp - real_exp;
3512+ uint32_t pow5_exp = uint32_t(-real_exp);
3513+ if (pow5_exp != 0) {
3514+ FASTFLOAT_ASSERT(theor_digits.pow5(pow5_exp));
3515+ }
3516+ if (pow2_exp > 0) {
3517+ FASTFLOAT_ASSERT(theor_digits.pow2(uint32_t(pow2_exp)));
3518+ } else if (pow2_exp < 0) {
3519+ FASTFLOAT_ASSERT(real_digits.pow2(uint32_t(-pow2_exp)));
3520+ }
3521+
3522+ // compare digits, and use it to director rounding
3523+ int ord = real_digits.compare(theor_digits);
3524+ adjusted_mantissa answer = am;
3525+ round<T>(answer, [ord](adjusted_mantissa &a, int32_t shift) {
3526+ round_nearest_tie_even(
3527+ a, shift, [ord](bool is_odd, bool _, bool __) -> bool {
3528+ (void)_; // not needed, since we've done our comparison
3529+ (void)__; // not needed, since we've done our comparison
3530+ if (ord > 0) {
3531+ return true;
3532+ } else if (ord < 0) {
3533+ return false;
3534+ } else {
3535+ return is_odd;
3536+ }
3537+ });
3538+ });
3539+
3540+ return answer;
3541+}
3542+
3543+// parse the significant digits as a big integer to unambiguously round the
3544+// the significant digits. here, we are trying to determine how to round
3545+// an extended float representation close to `b+h`, halfway between `b`
3546+// (the float rounded-down) and `b+u`, the next positive float. this
3547+// algorithm is always correct, and uses one of two approaches. when
3548+// the exponent is positive relative to the significant digits (such as
3549+// 1234), we create a big-integer representation, get the high 64-bits,
3550+// determine if any lower bits are truncated, and use that to direct
3551+// rounding. in case of a negative exponent relative to the significant
3552+// digits (such as 1.2345), we create a theoretical representation of
3553+// `b` as a big-integer type, scaled to the same binary exponent as
3554+// the actual digits. we then compare the big integer representations
3555+// of both, and use that to direct rounding.
3556+template <typename T, typename UC>
3557+inline FASTFLOAT_CONSTEXPR20 adjusted_mantissa
3558+digit_comp(parsed_number_string_t<UC> &num, adjusted_mantissa am) noexcept {
3559+ // remove the invalid exponent bias
3560+ am.power2 -= invalid_am_bias;
3561+
3562+ int32_t sci_exp = scientific_exponent(num);
3563+ size_t max_digits = binary_format<T>::max_digits();
3564+ size_t digits = 0;
3565+ bigint bigmant;
3566+ parse_mantissa(bigmant, num, max_digits, digits);
3567+ // can't underflow, since digits is at most max_digits.
3568+ int32_t exponent = sci_exp + 1 - int32_t(digits);
3569+ if (exponent >= 0) {
3570+ return positive_digit_comp<T>(bigmant, exponent);
3571+ } else {
3572+ return negative_digit_comp<T>(bigmant, am, exponent);
3573+ }
3574+}
3575+
3576+} // namespace fast_float
3577+
3578+#endif
3579+
3580+#ifndef FASTFLOAT_PARSE_NUMBER_H
3581+#define FASTFLOAT_PARSE_NUMBER_H
3582+
3583+
3584+#include <cmath>
3585+#include <cstring>
3586+#include <limits>
3587+#include <system_error>
3588+namespace fast_float {
3589+
3590+namespace detail {
3591+/**
3592+ * Special case +inf, -inf, nan, infinity, -infinity.
3593+ * The case comparisons could be made much faster given that we know that the
3594+ * strings a null-free and fixed.
3595+ **/
3596+template <typename T, typename UC>
3597+from_chars_result_t<UC> FASTFLOAT_CONSTEXPR14 parse_infnan(UC const *first,
3598+ UC const *last,
3599+ T &value) noexcept {
3600+ from_chars_result_t<UC> answer{};
3601+ answer.ptr = first;
3602+ answer.ec = std::errc(); // be optimistic
3603+ bool minusSign = false;
3604+ if (*first ==
3605+ UC('-')) { // assume first < last, so dereference without checks;
3606+ // C++17 20.19.3.(7.1) explicitly forbids '+' here
3607+ minusSign = true;
3608+ ++first;
3609+ }
3610+#ifdef FASTFLOAT_ALLOWS_LEADING_PLUS // disabled by default
3611+ if (*first == UC('+')) {
3612+ ++first;
3613+ }
3614+#endif
3615+ if (last - first >= 3) {
3616+ if (fastfloat_strncasecmp(first, str_const_nan<UC>(), 3)) {
3617+ answer.ptr = (first += 3);
3618+ value = minusSign ? -std::numeric_limits<T>::quiet_NaN()
3619+ : std::numeric_limits<T>::quiet_NaN();
3620+ // Check for possible nan(n-char-seq-opt), C++17 20.19.3.7,
3621+ // C11 7.20.1.3.3. At least MSVC produces nan(ind) and nan(snan).
3622+ if (first != last && *first == UC('(')) {
3623+ for (UC const *ptr = first + 1; ptr != last; ++ptr) {
3624+ if (*ptr == UC(')')) {
3625+ answer.ptr = ptr + 1; // valid nan(n-char-seq-opt)
3626+ break;
3627+ } else if (!((UC('a') <= *ptr && *ptr <= UC('z')) ||
3628+ (UC('A') <= *ptr && *ptr <= UC('Z')) ||
3629+ (UC('0') <= *ptr && *ptr <= UC('9')) || *ptr == UC('_')))
3630+ break; // forbidden char, not nan(n-char-seq-opt)
3631+ }
3632+ }
3633+ return answer;
3634+ }
3635+ if (fastfloat_strncasecmp(first, str_const_inf<UC>(), 3)) {
3636+ if ((last - first >= 8) &&
3637+ fastfloat_strncasecmp(first + 3, str_const_inf<UC>() + 3, 5)) {
3638+ answer.ptr = first + 8;
3639+ } else {
3640+ answer.ptr = first + 3;
3641+ }
3642+ value = minusSign ? -std::numeric_limits<T>::infinity()
3643+ : std::numeric_limits<T>::infinity();
3644+ return answer;
3645+ }
3646+ }
3647+ answer.ec = std::errc::invalid_argument;
3648+ return answer;
3649+}
3650+
3651+/**
3652+ * Returns true if the floating-pointing rounding mode is to 'nearest'.
3653+ * It is the default on most system. This function is meant to be inexpensive.
3654+ * Credit : @mwalcott3
3655+ */
3656+fastfloat_really_inline bool rounds_to_nearest() noexcept {
3657+ // https://lemire.me/blog/2020/06/26/gcc-not-nearest/
3658+#if (FLT_EVAL_METHOD != 1) && (FLT_EVAL_METHOD != 0)
3659+ return false;
3660+#endif
3661+ // See
3662+ // A fast function to check your floating-point rounding mode
3663+ // https://lemire.me/blog/2022/11/16/a-fast-function-to-check-your-floating-point-rounding-mode/
3664+ //
3665+ // This function is meant to be equivalent to :
3666+ // prior: #include <cfenv>
3667+ // return fegetround() == FE_TONEAREST;
3668+ // However, it is expected to be much faster than the fegetround()
3669+ // function call.
3670+ //
3671+ // The volatile keywoard prevents the compiler from computing the function
3672+ // at compile-time.
3673+ // There might be other ways to prevent compile-time optimizations (e.g.,
3674+ // asm). The value does not need to be std::numeric_limits<float>::min(), any
3675+ // small value so that 1 + x should round to 1 would do (after accounting for
3676+ // excess precision, as in 387 instructions).
3677+ static volatile float fmin = std::numeric_limits<float>::min();
3678+ float fmini = fmin; // we copy it so that it gets loaded at most once.
3679+//
3680+// Explanation:
3681+// Only when fegetround() == FE_TONEAREST do we have that
3682+// fmin + 1.0f == 1.0f - fmin.
3683+//
3684+// FE_UPWARD:
3685+// fmin + 1.0f > 1
3686+// 1.0f - fmin == 1
3687+//
3688+// FE_DOWNWARD or FE_TOWARDZERO:
3689+// fmin + 1.0f == 1
3690+// 1.0f - fmin < 1
3691+//
3692+// Note: This may fail to be accurate if fast-math has been
3693+// enabled, as rounding conventions may not apply.
3694+#ifdef FASTFLOAT_VISUAL_STUDIO
3695+#pragma warning(push)
3696+// todo: is there a VS warning?
3697+// see
3698+// https://stackoverflow.com/questions/46079446/is-there-a-warning-for-floating-point-equality-checking-in-visual-studio-2013
3699+#elif defined(__clang__)
3700+#pragma clang diagnostic push
3701+#pragma clang diagnostic ignored "-Wfloat-equal"
3702+#elif defined(__GNUC__)
3703+#pragma GCC diagnostic push
3704+#pragma GCC diagnostic ignored "-Wfloat-equal"
3705+#endif
3706+ return (fmini + 1.0f == 1.0f - fmini);
3707+#ifdef FASTFLOAT_VISUAL_STUDIO
3708+#pragma warning(pop)
3709+#elif defined(__clang__)
3710+#pragma clang diagnostic pop
3711+#elif defined(__GNUC__)
3712+#pragma GCC diagnostic pop
3713+#endif
3714+}
3715+
3716+} // namespace detail
3717+
3718+template <typename T> struct from_chars_caller {
3719+ template <typename UC>
3720+ FASTFLOAT_CONSTEXPR20 static from_chars_result_t<UC>
3721+ call(UC const *first, UC const *last, T &value,
3722+ parse_options_t<UC> options) noexcept {
3723+ return from_chars_advanced(first, last, value, options);
3724+ }
3725+};
3726+
3727+#if __STDCPP_FLOAT32_T__ == 1
3728+template <> struct from_chars_caller<std::float32_t> {
3729+ template <typename UC>
3730+ FASTFLOAT_CONSTEXPR20 static from_chars_result_t<UC>
3731+ call(UC const *first, UC const *last, std::float32_t &value,
3732+ parse_options_t<UC> options) noexcept {
3733+ // if std::float32_t is defined, and we are in C++23 mode; macro set for
3734+ // float32; set value to float due to equivalence between float and
3735+ // float32_t
3736+ float val;
3737+ auto ret = from_chars_advanced(first, last, val, options);
3738+ value = val;
3739+ return ret;
3740+ }
3741+};
3742+#endif
3743+
3744+#if __STDCPP_FLOAT64_T__ == 1
3745+template <> struct from_chars_caller<std::float64_t> {
3746+ template <typename UC>
3747+ FASTFLOAT_CONSTEXPR20 static from_chars_result_t<UC>
3748+ call(UC const *first, UC const *last, std::float64_t &value,
3749+ parse_options_t<UC> options) noexcept {
3750+ // if std::float64_t is defined, and we are in C++23 mode; macro set for
3751+ // float64; set value as double due to equivalence between double and
3752+ // float64_t
3753+ double val;
3754+ auto ret = from_chars_advanced(first, last, val, options);
3755+ value = val;
3756+ return ret;
3757+ }
3758+};
3759+#endif
3760+
3761+template <typename T, typename UC, typename>
3762+FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC>
3763+from_chars(UC const *first, UC const *last, T &value,
3764+ chars_format fmt /*= chars_format::general*/) noexcept {
3765+ return from_chars_caller<T>::call(first, last, value,
3766+ parse_options_t<UC>(fmt));
3767+}
3768+
3769+/**
3770+ * This function overload takes parsed_number_string_t structure that is created
3771+ * and populated either by from_chars_advanced function taking chars range and
3772+ * parsing options or other parsing custom function implemented by user.
3773+ */
3774+template <typename T, typename UC>
3775+FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC>
3776+from_chars_advanced(parsed_number_string_t<UC> &pns, T &value) noexcept {
3777+
3778+ static_assert(is_supported_float_type<T>(),
3779+ "only some floating-point types are supported");
3780+ static_assert(is_supported_char_type<UC>(),
3781+ "only char, wchar_t, char16_t and char32_t are supported");
3782+
3783+ from_chars_result_t<UC> answer;
3784+
3785+ answer.ec = std::errc(); // be optimistic
3786+ answer.ptr = pns.lastmatch;
3787+ // The implementation of the Clinger's fast path is convoluted because
3788+ // we want round-to-nearest in all cases, irrespective of the rounding mode
3789+ // selected on the thread.
3790+ // We proceed optimistically, assuming that detail::rounds_to_nearest()
3791+ // returns true.
3792+ if (binary_format<T>::min_exponent_fast_path() <= pns.exponent &&
3793+ pns.exponent <= binary_format<T>::max_exponent_fast_path() &&
3794+ !pns.too_many_digits) {
3795+ // Unfortunately, the conventional Clinger's fast path is only possible
3796+ // when the system rounds to the nearest float.
3797+ //
3798+ // We expect the next branch to almost always be selected.
3799+ // We could check it first (before the previous branch), but
3800+ // there might be performance advantages at having the check
3801+ // be last.
3802+ if (!cpp20_and_in_constexpr() && detail::rounds_to_nearest()) {
3803+ // We have that fegetround() == FE_TONEAREST.
3804+ // Next is Clinger's fast path.
3805+ if (pns.mantissa <= binary_format<T>::max_mantissa_fast_path()) {
3806+ value = T(pns.mantissa);
3807+ if (pns.exponent < 0) {
3808+ value = value / binary_format<T>::exact_power_of_ten(-pns.exponent);
3809+ } else {
3810+ value = value * binary_format<T>::exact_power_of_ten(pns.exponent);
3811+ }
3812+ if (pns.negative) {
3813+ value = -value;
3814+ }
3815+ return answer;
3816+ }
3817+ } else {
3818+ // We do not have that fegetround() == FE_TONEAREST.
3819+ // Next is a modified Clinger's fast path, inspired by Jakub Jelínek's
3820+ // proposal
3821+ if (pns.exponent >= 0 &&
3822+ pns.mantissa <=
3823+ binary_format<T>::max_mantissa_fast_path(pns.exponent)) {
3824+#if defined(__clang__) || defined(FASTFLOAT_32BIT)
3825+ // Clang may map 0 to -0.0 when fegetround() == FE_DOWNWARD
3826+ if (pns.mantissa == 0) {
3827+ value = pns.negative ? T(-0.) : T(0.);
3828+ return answer;
3829+ }
3830+#endif
3831+ value = T(pns.mantissa) *
3832+ binary_format<T>::exact_power_of_ten(pns.exponent);
3833+ if (pns.negative) {
3834+ value = -value;
3835+ }
3836+ return answer;
3837+ }
3838+ }
3839+ }
3840+ adjusted_mantissa am =
3841+ compute_float<binary_format<T>>(pns.exponent, pns.mantissa);
3842+ if (pns.too_many_digits && am.power2 >= 0) {
3843+ if (am != compute_float<binary_format<T>>(pns.exponent, pns.mantissa + 1)) {
3844+ am = compute_error<binary_format<T>>(pns.exponent, pns.mantissa);
3845+ }
3846+ }
3847+ // If we called compute_float<binary_format<T>>(pns.exponent, pns.mantissa)
3848+ // and we have an invalid power (am.power2 < 0), then we need to go the long
3849+ // way around again. This is very uncommon.
3850+ if (am.power2 < 0) {
3851+ am = digit_comp<T>(pns, am);
3852+ }
3853+ to_float(pns.negative, am, value);
3854+ // Test for over/underflow.
3855+ if ((pns.mantissa != 0 && am.mantissa == 0 && am.power2 == 0) ||
3856+ am.power2 == binary_format<T>::infinite_power()) {
3857+ answer.ec = std::errc::result_out_of_range;
3858+ }
3859+ return answer;
3860+}
3861+
3862+template <typename T, typename UC>
3863+FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC>
3864+from_chars_advanced(UC const *first, UC const *last, T &value,
3865+ parse_options_t<UC> options) noexcept {
3866+
3867+ static_assert(is_supported_float_type<T>(),
3868+ "only some floating-point types are supported");
3869+ static_assert(is_supported_char_type<UC>(),
3870+ "only char, wchar_t, char16_t and char32_t are supported");
3871+
3872+ from_chars_result_t<UC> answer;
3873+#ifdef FASTFLOAT_SKIP_WHITE_SPACE // disabled by default
3874+ while ((first != last) && fast_float::is_space(uint8_t(*first))) {
3875+ first++;
3876+ }
3877+#endif
3878+ if (first == last) {
3879+ answer.ec = std::errc::invalid_argument;
3880+ answer.ptr = first;
3881+ return answer;
3882+ }
3883+ parsed_number_string_t<UC> pns =
3884+ parse_number_string<UC>(first, last, options);
3885+ if (!pns.valid) {
3886+ if (options.format & chars_format::no_infnan) {
3887+ answer.ec = std::errc::invalid_argument;
3888+ answer.ptr = first;
3889+ return answer;
3890+ } else {
3891+ return detail::parse_infnan(first, last, value);
3892+ }
3893+ }
3894+
3895+ // call overload that takes parsed_number_string_t directly.
3896+ return from_chars_advanced(pns, value);
3897+}
3898+
3899+template <typename T, typename UC, typename>
3900+FASTFLOAT_CONSTEXPR20 from_chars_result_t<UC>
3901+from_chars(UC const *first, UC const *last, T &value, int base) noexcept {
3902+ static_assert(is_supported_char_type<UC>(),
3903+ "only char, wchar_t, char16_t and char32_t are supported");
3904+
3905+ from_chars_result_t<UC> answer;
3906+#ifdef FASTFLOAT_SKIP_WHITE_SPACE // disabled by default
3907+ while ((first != last) && fast_float::is_space(uint8_t(*first))) {
3908+ first++;
3909+ }
3910+#endif
3911+ if (first == last || base < 2 || base > 36) {
3912+ answer.ec = std::errc::invalid_argument;
3913+ answer.ptr = first;
3914+ return answer;
3915+ }
3916+ return parse_int_string(first, last, value, base);
3917+}
3918+
3919+} // namespace fast_float
3920+
3921+#endif
3922+
diff --git a/meta/recipes-support/vte/vte/0005-color-parser-Use-fast_float-implementation-for-from_.patch b/meta/recipes-support/vte/vte/0005-color-parser-Use-fast_float-implementation-for-from_.patch
new file mode 100644
index 0000000000..b951bbac18
--- /dev/null
+++ b/meta/recipes-support/vte/vte/0005-color-parser-Use-fast_float-implementation-for-from_.patch
@@ -0,0 +1,102 @@
1From 08b90d0a5bf8ceb68dd1b4e9ded0f8a2b5287a6e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 4 Oct 2024 21:22:52 -0700
4Subject: [PATCH 5/5] color-parser: Use fast_float implementation for
5 from_chars
6
7Removed dependency on c++ runtime to provide it.
8
9Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/2823
10
11Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/vte/-/issues/2823#note_2239888]
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 src/color-parser.cc | 12 ++++++------
15 src/termprops.hh | 12 ++++++------
16 2 files changed, 12 insertions(+), 12 deletions(-)
17
18diff --git a/src/color-parser.cc b/src/color-parser.cc
19index 02ec5d3a..42c51966 100644
20--- a/src/color-parser.cc
21+++ b/src/color-parser.cc
22@@ -17,7 +17,7 @@
23
24 #include "color-parser.hh"
25 #include "color.hh"
26-
27+#include "fast_float.hh"
28 #include <algorithm>
29 #include <cctype>
30 #include <charconv>
31@@ -298,7 +298,7 @@ parse_csslike(std::string const& spec) noexcept
32 auto value = uint64_t{};
33 auto const start = spec.c_str() + 1;
34 auto const end = spec.c_str() + spec.size();
35- auto const rv = std::from_chars(start, end, value, 16);
36+ auto const rv = fast_float::from_chars(start, end, value, 16);
37 if (rv.ec != std::errc{} || rv.ptr != end)
38 return std::nullopt;
39
40@@ -424,7 +424,7 @@ parse_x11like(std::string const& spec) noexcept
41 auto value = uint64_t{};
42 auto const start = spec.c_str() + 1;
43 auto const end = spec.c_str() + spec.size();
44- auto const rv = std::from_chars(start, end, value, 16);
45+ auto const rv = fast_float::from_chars(start, end, value, 16);
46 if (rv.ec != std::errc{} || rv.ptr != end)
47 return std::nullopt;
48
49@@ -447,13 +447,13 @@ parse_x11like(std::string const& spec) noexcept
50 // Note that the length check above makes sure that @r, @g, @b,
51 // don't exceed @bits.
52 auto r = UINT64_C(0), b = UINT64_C(0), g = UINT64_C(0);
53- auto rv = std::from_chars(start, end, r, 16);
54+ auto rv = fast_float::from_chars(start, end, r, 16);
55 if (rv.ec != std::errc{} || rv.ptr == end || *rv.ptr != '/')
56 return std::nullopt;
57- rv = std::from_chars(rv.ptr + 1, end, g, 16);
58+ rv = fast_float::from_chars(rv.ptr + 1, end, g, 16);
59 if (rv.ec != std::errc{} || rv.ptr == end || *rv.ptr != '/')
60 return std::nullopt;
61- rv = std::from_chars(rv.ptr + 1, end, b, 16);
62+ rv = fast_float::from_chars(rv.ptr + 1, end, b, 16);
63 if (rv.ec != std::errc{} || rv.ptr != end)
64 return std::nullopt;
65
66diff --git a/src/termprops.hh b/src/termprops.hh
67index 0d3f0f4c..a10fc7d1 100644
68--- a/src/termprops.hh
69+++ b/src/termprops.hh
70@@ -17,6 +17,7 @@
71
72 #include <glib.h>
73
74+#include "fast_float.hh"
75 #include "fwd.hh"
76 #include "uuid.hh"
77 #include "color.hh"
78@@ -355,8 +356,8 @@ inline std::optional<TermpropValue>
79 parse_termprop_integral(std::string_view const& str) noexcept
80 {
81 auto v = T{};
82- if (auto [ptr, err] = std::from_chars(std::begin(str),
83- std::end(str),
84+ if (auto [ptr, err] = fast_float::from_chars(str.data(),
85+ str.data()+str.size(),
86 v);
87 err == std::errc() && ptr == std::end(str)) {
88 if constexpr (std::is_unsigned_v<T>) {
89@@ -389,10 +390,9 @@ inline std::optional<TermpropValue>
90 parse_termprop_floating(std::string_view const& str) noexcept
91 {
92 auto v = T{};
93- if (auto [ptr, err] = std::from_chars(std::begin(str),
94- std::end(str),
95- v,
96- std::chars_format::general);
97+ if (auto [ptr, err] = fast_float::from_chars(str.data(),
98+ str.data() + str.size(),
99+ v);
100 err == std::errc() &&
101 ptr == std::end(str) &&
102 std::isfinite(v)) {
diff --git a/meta/recipes-support/vte/vte_0.74.2.bb b/meta/recipes-support/vte/vte_0.78.2.bb
index d8eafde2fb..0593d16cd8 100644
--- a/meta/recipes-support/vte/vte_0.74.2.bb
+++ b/meta/recipes-support/vte/vte_0.78.2.bb
@@ -11,15 +11,18 @@ LIC_FILES_CHKSUM = " \
11 file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \ 11 file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \
12" 12"
13 13
14DEPENDS = "glib-2.0 glib-2.0-native gtk+3 libpcre2 libxml2-native gperf-native icu" 14DEPENDS = "glib-2.0 glib-2.0-native gtk+3 libpcre2 libxml2-native gperf-native icu lz4"
15 15
16GIR_MESON_OPTION = 'gir' 16GIR_MESON_OPTION = 'gir'
17GIDOCGEN_MESON_OPTION = "docs" 17GIDOCGEN_MESON_OPTION = "docs"
18
19inherit gnomebase gi-docgen features_check upstream-version-is-even gobject-introspection systemd vala 18inherit gnomebase gi-docgen features_check upstream-version-is-even gobject-introspection systemd vala
20 19
21SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch" 20SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
22SRC_URI[archive.sha256sum] = "a535fb2a98fea8a2449cd1a02cccf5190131dddff52e715afdace3feb536eae7" 21 file://0002-lib-Typo-fix.patch \
22 file://0004-fast_float-Add-single-header-library-for-from_char-i.patch \
23 file://0005-color-parser-Use-fast_float-implementation-for-from_.patch \
24 "
25SRC_URI[archive.sha256sum] = "35d7bcde07356846b4a12881c8e016705b70a9004a9082285eee5834ccc49890"
23 26
24ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" 27ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
25 28
@@ -38,7 +41,7 @@ PACKAGECONFIG[systemd] = "-D_systemd=true,-D_systemd=false,systemd"
38 41
39PACKAGES =+ "libvte-gtk4 ${PN}-gtk4 ${PN}-gtk4-dev libvte ${PN}-prompt" 42PACKAGES =+ "libvte-gtk4 ${PN}-gtk4 ${PN}-gtk4-dev libvte ${PN}-prompt"
40FILES:libvte-gtk4 = "${libdir}/lib*gtk4.so.* ${libdir}/girepository-1.0/Vte-3.91.typelib" 43FILES:libvte-gtk4 = "${libdir}/lib*gtk4.so.* ${libdir}/girepository-1.0/Vte-3.91.typelib"
41FILES:${PN}-gtk4 ="${bindir}/vte-2.91-gtk4" 44FILES:${PN}-gtk4 = "${bindir}/vte-2.91-gtk4"
42FILES:${PN}-gtk4-dev = "${libdir}/lib*gtk4.so \ 45FILES:${PN}-gtk4-dev = "${libdir}/lib*gtk4.so \
43 ${libdir}/pkgconfig/vte-2.91-gtk4.pc \ 46 ${libdir}/pkgconfig/vte-2.91-gtk4.pc \
44 ${datadir}/gir-1.0/Vte-3.91.gir \ 47 ${datadir}/gir-1.0/Vte-3.91.gir \
@@ -46,7 +49,7 @@ FILES:${PN}-gtk4-dev = "${libdir}/lib*gtk4.so \
46 ${datadir}/vala/vapi/vte-2.91-gtk4.vapi \ 49 ${datadir}/vala/vapi/vte-2.91-gtk4.vapi \
47 ${includedir}/vte-2.91-gtk4 \ 50 ${includedir}/vte-2.91-gtk4 \
48 " 51 "
49FILES:${PN} +="${systemd_user_unitdir}" 52FILES:${PN} += "${systemd_user_unitdir}"
50FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*" 53FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*"
51FILES:${PN}-prompt = " \ 54FILES:${PN}-prompt = " \
52 ${sysconfdir}/profile.d \ 55 ${sysconfdir}/profile.d \
diff --git a/meta/recipes-support/xxhash/xxhash_0.8.2.bb b/meta/recipes-support/xxhash/xxhash_0.8.3.bb
index f16b183c95..15436113b1 100644
--- a/meta/recipes-support/xxhash/xxhash_0.8.2.bb
+++ b/meta/recipes-support/xxhash/xxhash_0.8.3.bb
@@ -10,9 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=13be6b481ff5616f77dda971191bb29b \
10SRC_URI = "git://github.com/Cyan4973/xxHash.git;branch=release;protocol=https" 10SRC_URI = "git://github.com/Cyan4973/xxHash.git;branch=release;protocol=https"
11UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" 11UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
12 12
13SRCREV = "bbb27a5efb85b92a0486cf361a8635715a53f6ba" 13SRCREV = "e626a72bc2321cd320e953a0ccf1584cad60f363"
14
15S = "${WORKDIR}/git"
16 14
17CFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}" 15CFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}"
18 16