Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter

- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
This commit is contained in:
Eric F
2026-06-08 00:38:27 -04:00
parent 468cfeaa50
commit d398a6ced2
7326 changed files with 1177561 additions and 7 deletions

View File

@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -0,0 +1,6 @@
meta-everest
============
BitBake layer for open embedded
All documentation and the issue tracking can be found in our main repository here: https://github.com/EVerest/everest

View File

@@ -0,0 +1 @@
intenionally left blank

View File

@@ -0,0 +1,5 @@
# EVerest variable defaults
EVEREST_VERSION_FILE ?= "${sysconfdir}/everest/everest_version"
EVEREST_RELEASE_FILE ?= "${sysconfdir}/everest/everest_release.json"
EVEREST_RELEASE_PACKAGES ?= ""

View File

@@ -0,0 +1,100 @@
# add everest release version information to the root file system
inherit everest
python do_everest_generate_version() {
import oe.packagedata
import os
from datetime import datetime
# obtain package name and version from important packages
# see license_image.bbclass license_create_manifest() for the approach
pkg_dic = {}
for pkg in everest_important_packages(d):
pkg_info = os.path.join(d.getVar('PKGDATA_DIR'),
'runtime-reverse', pkg)
pkg_name = os.path.basename(os.readlink(pkg_info))
info = oe.packagedata.read_pkgdatafile(pkg_info)
# items of interest: PN PV
pkg_dic[pkg_name] = {'name': info['PN'], 'version': info['PV']}
# JSON information to add to the version file
release = {}
release['channel'] = os.environ.get('EVEREST_UPDATE_CHANNEL', "unknown")
release['datetime'] = datetime.now().isoformat("T") + "Z"
version = None
try:
version_file = d.getVar('IMAGE_ROOTFS') + d.getVar('everest_VERSION_FILE')
with open(version_file, "r") as fp:
version = fp.read().strip()
except:
version = None
if version is None or version == "":
if "everest-core" in pkg_dic:
version = pkg_dic['everest-core']['version']
else:
bb.warn("Unable to determine everest release")
version = '<unknown>'
release['version'] = version
release['components'] = list(pkg_dic.values())
# write version file
everest_write_version(d, release)
}
def everest_important_packages(d):
from oe.rootfs import image_list_installed_packages
pkgs = image_list_installed_packages(d)
# recipes from recipes-core
important = [
"everest-admin-panel",
"everest-cmake",
"everest-core",
"everest-framework",
"everest-libmodbus",
"everest-node-red-flows",
"json-schema-validator",
"libcbv2g",
"libevse-security",
"libfsm",
"libiso15118",
"liblog",
"libnfc-nci",
"libocpp",
"libslac",
"libtimer",
]
additional = d.getVar('EVEREST_RELEASE_PACKAGES')
for pkg in additional.split(' '):
pkg = pkg.strip()
if pkg != "":
important.append(pkg)
return sorted([x for x in pkgs if x in important])
def everest_show_all_packages(d):
# can be added to ROOTFS_POSTPROCESS_COMMAND to show available packages for
# updating the important list in everest_important_packages()
from oe.rootfs import image_list_installed_packages
pkgs = image_list_installed_packages(d)
for p in sorted(pkgs):
bb.warn("Installed: %s" % str(p))
def everest_write_version(d, release_info):
import json
output = d.getVar('IMAGE_ROOTFS') + d.getVar('EVEREST_RELEASE_FILE')
with open(output, "w", encoding="utf-8") as json_file:
json.dump(release_info, json_file, indent=2)
# add processing to the end of the list
ROOTFS_POSTPROCESS_COMMAND:append = " do_everest_generate_version;"

View File

@@ -0,0 +1,38 @@
inherit pypi
inherit python3native python3targetconfig
PYPI_PACKAGE ?= "${@pypi_package(d)}"
# using debian mirror here, because of easy url
def pypi_wheel_uri(d):
package = d.getVar('PYPI_PACKAGE')
artifact_name = d.getVar('PYPI_WHEEL_NAME')
return 'https://pypi.debian.net/%s/%s' % (package, artifact_name)
PYPI_WHEEL_URI ?= "${@pypi_wheel_uri(d)};name=wheel"
SRC_URI:prepend = "${PYPI_WHEEL_URI} "
FILES:${PN} += "${libdir}/* ${libdir}/${PYTHON_DIR}/*"
FILES:${PN}-staticdev += "\
${PYTHON_SITEPACKAGES_DIR}/*.a \
"
FILES:${PN}-dev += "\
${datadir}/pkgconfig \
${libdir}/pkgconfig \
${PYTHON_SITEPACKAGES_DIR}/*.la \
"
DEPENDS:append = " python3-installer-native"
# pypa/installer option to control the bytecode compilation
INSTALL_WHEEL_COMPILE_BYTECODE ?= "--compile-bytecode=0"
pypi_wheel_do_install() {
nativepython3 -m installer ${INSTALL_WHEEL_COMPILE_BYTECODE} \
--interpreter "${USRBINPATH}/env python3" \
--destdir=${D} ${WORKDIR}/${PYPI_WHEEL_NAME}
}
EXPORT_FUNCTIONS do_install

View File

@@ -0,0 +1,19 @@
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "meta-everest"
BBFILE_PATTERN_meta-everest = "^${LAYERDIR}/"
LAYERDEPENDS_meta-everest = "core"
LAYERSERIES_COMPAT_meta-everest = "kirkstone"
# prefer version from recipes-backports
PREFERRED_VERSION_tpm2-openssl ??= "1.3%"
EVEREST_CORE_PATH = "${LAYERDIR}/../../.."
EVEREST_CORE_PARENT_PATH = "${EVEREST_CORE_PATH}/.."
EVEREST_CORE_REPONAME ?= "${@os.path.basename(os.path.abspath(d.getVar("EVEREST_CORE_PATH")))}"

View File

@@ -0,0 +1,25 @@
# everest_release.json
A JSON file containing a subset of installed packages can be added to your
image `/etc/everest/everest_release.json` by adding the following line to
your image recipes
```
inherit everest_version_file
```
`everest_version_file.bbclass` queries the installed packages and creates the
release JSON file by appending `do_everest_generate_version` to
the `ROOTFS_POSTPROCESS_COMMAND` variable.
`everest_version_file.bbclass` contains a list of packages to include.
This list can be extended via the `EVEREST_RELEASE_PACKAGES` variable as a
space separated list. For example in `local.conf`
```
everest_RELEASE_PACKAGES += "systemd tcpdump"
```
Note that packages need to be listed in `RDEPENDS`, or `IMAGE_INSTALL` to be
available for inclusion.

View File

@@ -0,0 +1,12 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI = "git://git@github.com/asyncapi/cli.git;protocol=ssh;branch=master"
# v2.7.1
SRCREV = "2e5c6cd224eef9f8924c7d7ec961b37fd0123f21"
S = "${WORKDIR}/git"
inherit npm
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,24 @@
DESCRIPTION = "A modern, C++-native, header-only, test framework for unit-tests, \
TDD and BDD - using C++11, C++14, C++17 and later."
AUTHOR = "Phil Nash, Martin Horenovsky and others"
HOMEPAGE = "https://github.com/catchorg/Catch2"
LICENSE = "BSL-1.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
SRC_URI = "git://github.com/catchorg/Catch2.git;branch=v2.x;protocol=https"
SRCREV = "62fd660583d3ae7a7886930b413c3c570e89786c"
S = "${WORKDIR}/git"
inherit cmake python3native
do_install:append() {
rm ${D}${datadir}/Catch2/lldbinit
rm ${D}${datadir}/Catch2/gdbinit
rmdir ${D}${datadir}/Catch2/
}
# Header-only library
RDEPENDS:${PN}-dev = ""
RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
EXTRA_OECMAKE += "-DCATCH_BUILD_TESTING=OFF"

View File

@@ -0,0 +1,41 @@
# Intermittently fails e.g. https://autobuilder.yocto.io/pub/non-release/20231220-28/testresults/qemux86-64-ptest/curl.log
# https://autobuilder.yocto.io/pub/non-release/20231220-27/testresults/qemux86-64-ptest/curl.log
337
# These CRL test (alt-avc) are failing
356
412
413
# These CRL tests are scanning docs
971
# Intermittently hangs e.g http://autobuilder.yocto.io/pub/non-release/20231228-18/testresults/qemux86-64-ptest/curl.log
1091
# Intermittently hangs e.g https://autobuilder.yocto.io/pub/non-release/20231220-27/testresults/qemux86-64-ptest/curl.log
1096
# These CRL tests are scanning docs
1119
1132
1135
1478
# These CRL tests are scanning headers
1167
1477
# These CRL tests are scanning man pages
1139
1140
1173
1177
# This CRL test is looking for m4 files
1165
# This CRL test is looking for src files
1185
# This test is scanning the source tree
1222
# These CRL tests need --libcurl option to be enabled
1279
1400
1401
1402
1403
1404
1405
1465

View File

@@ -0,0 +1,4 @@
if [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
export CURL_CA_BUNDLE="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt"
export BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITIONS:-} CURL_CA_BUNDLE"
fi

View File

@@ -0,0 +1,13 @@
#!/bin/sh
cd tests
# Run all tests, don't stop on first failure
# Don't use valgrind if it is found
# Use automake-style output
# Run four tests in parallel
# Print log output on failure
# Don't run the flaky or timing dependent tests
# Until https://github.com/curl/curl/issues/13350 is resolved, don't run FTP tests
./runtests.pl -a -n -am -j4 -p !flaky !timing-dependent !FTP

View File

@@ -0,0 +1,158 @@
SUMMARY = "Command line tool and library for client-side URL transfers"
DESCRIPTION = "It uses URL syntax to transfer data to and from servers. \
curl is a widely used because of its ability to be flexible and complete \
complex tasks. For example, you can use curl for things like user authentication, \
HTTP post, SSL connections, proxy support, FTP uploads, and more!"
HOMEPAGE = "https://curl.se/"
BUGTRACKER = "https://github.com/curl/curl/issues"
SECTION = "console/network"
LICENSE = "curl"
LIC_FILES_CHKSUM = "file://COPYING;md5=eed2e5088e1ac619c9a1c747da291d75"
SRC_URI = " \
https://curl.se/download/${BP}.tar.xz \
file://721941aadf4adf4f6aeb3f4c0ab489bb89610c36.patch \
file://run-ptest \
file://disable-tests \
file://no-test-timeout.patch \
file://CVE-2024-6197.patch \
file://CVE-2024-7264-1.patch \
file://CVE-2024-7264-2.patch \
file://CVE-2024-8096.patch \
file://CVE-2024-9681.patch \
"
SRC_URI[sha256sum] = "6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd"
# Curl has used many names over the years...
CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
CVE_STATUS[CVE-2024-32928] = "ignored: CURLOPT_SSL_VERIFYPEER was disabled on google cloud services causing a potential man in the middle attack"
CVE_STATUS[CVE-2025-0725] = "not-applicable-config: gzip decompression of content-encoded HTTP responses with the `CURLOPT_ACCEPT_ENCODING` option, using zlib 1.2.0.3 or older"
inherit autotools pkgconfig binconfig multilib_header ptest
# Entropy source for random PACKAGECONFIG option
RANDOM ?= "/dev/urandom"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} aws basic-auth bearer-auth digest-auth negotiate-auth libidn openssl proxy random threaded-resolver verbose zlib"
PACKAGECONFIG:class-native = "ipv6 openssl proxy random threaded-resolver verbose zlib aws basic-auth bearer-auth digest-auth negotiate-auth"
PACKAGECONFIG:class-nativesdk = "ipv6 openssl proxy random threaded-resolver verbose zlib aws basic-auth bearer-auth digest-auth negotiate-auth"
# 'ares' and 'threaded-resolver' are mutually exclusive
PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver"
PACKAGECONFIG[aws] = "--enable-aws,--disable-aws"
PACKAGECONFIG[basic-auth] = "--enable-basic-auth,--disable-basic-auth"
PACKAGECONFIG[bearer-auth] = "--enable-bearer-auth,--disable-bearer-auth"
PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli"
PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual"
# Don't use this in production
PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
PACKAGECONFIG[digest-auth] = "--enable-digest-auth,--disable-digest-auth"
PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
PACKAGECONFIG[kerberos-auth] = "--enable-kerberos-auth,--disable-kerberos-auth"
PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap"
PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,openldap"
PACKAGECONFIG[libgsasl] = "--with-libgsasl,--without-libgsasl,libgsasl"
PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2"
PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls"
PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt,"
PACKAGECONFIG[negotiate-auth] = "--enable-negotiate-auth,--disable-negotiate-auth"
PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2"
PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy,"
PACKAGECONFIG[random] = "--with-random=${RANDOM},--without-random"
PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares"
PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose"
PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
EXTRA_OECONF = " \
--disable-libcurl-option \
--disable-ntlm-wb \
--with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
--without-libpsl \
--enable-optimize \
${@'--without-ssl' if (bb.utils.filter('PACKAGECONFIG', 'gnutls mbedtls openssl', d) == '') else ''} \
"
fix_absolute_paths () {
# cleanup buildpaths from curl-config
sed -i \
-e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
-e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \
-e 's|${DEBUG_PREFIX_MAP}||g' \
-e 's|${@" ".join(d.getVar("DEBUG_PREFIX_MAP").split())}||g' \
${D}${bindir}/curl-config
}
do_install:append:class-target() {
fix_absolute_paths
}
do_install:append:class-nativesdk() {
fix_absolute_paths
}
do_compile_ptest() {
oe_runmake -C ${B}/tests
}
do_install_ptest() {
cat ${WORKDIR}/disable-tests >> ${S}/tests/data/DISABLED
rm -f ${B}/tests/configurehelp.pm
cp -rf ${B}/tests ${D}${PTEST_PATH}
rm -f ${D}${PTEST_PATH}/tests/libtest/.libs/libhostname.la
rm -f ${D}${PTEST_PATH}/tests/libtest/libhostname.la
mv ${D}${PTEST_PATH}/tests/libtest/.libs/* ${D}${PTEST_PATH}/tests/libtest/
mv ${D}${PTEST_PATH}/tests/libtest/libhostname.so ${D}${PTEST_PATH}/tests/libtest/.libs/
mv ${D}${PTEST_PATH}/tests/http/clients/.libs/* ${D}${PTEST_PATH}/tests/http/clients/
cp -rf ${S}/tests ${D}${PTEST_PATH}
find ${D}${PTEST_PATH}/ -type f -name Makefile.am -o -name Makefile.in -o -name Makefile -delete
install -d ${D}${PTEST_PATH}/src
ln -sf ${bindir}/curl ${D}${PTEST_PATH}/src/curl
cp -rf ${D}${bindir}/curl-config ${D}${PTEST_PATH}
}
RDEPENDS:${PN}-ptest += " \
bash \
locale-base-en-us \
perl-module-b \
perl-module-base \
perl-module-cwd \
perl-module-digest \
perl-module-digest-md5 \
perl-module-file-basename \
perl-module-file-spec \
perl-module-file-temp \
perl-module-io-socket \
perl-module-ipc-open2 \
perl-module-list-util \
perl-module-memoize \
perl-module-storable \
perl-module-time-hires \
"
PACKAGES =+ "lib${BPN}"
FILES:lib${BPN} = "${libdir}/lib*.so.*"
RRECOMMENDS:lib${BPN} += "ca-certificates"
FILES:${PN} += "${datadir}/zsh"
inherit multilib_script
MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,24 @@
SUMMARY = "A date and time library based on C++11/14/17."
AUTHOR = "Howard Hinnant"
HOMEPAGE = "https://github.com/HowardHinnant/date.git"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b5d973344b3c7bbf7535f0e6e002d017"
SRC_URI = "git://github.com/HowardHinnant/date.git;branch=master;protocol=https \
"
inherit cmake
S = "${WORKDIR}/git"
PV = "3.0.4"
SRCREV = "f94b8f36c6180be0021876c4a397a054fe50c6f2"
EXTRA_OECMAKE += " \
-DBUILD_TZ_LIB=ON \
-DHAS_REMOTE_API=OFF \
-DUSE_AUTOLOAD=OFF \
-DUSE_SYSTEM_TZ_DB=ON \
-DBUILD_SHARED_LIBS=ON \
"

View File

@@ -0,0 +1,17 @@
SUMMARY = "open-source formatting library for C++"
DESCRIPTION = "{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams."
HOMEPAGE = "https://fmt.dev"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729"
SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https"
SRCREV = "407c905e45ad75fc29bf0f9bb7c5c2fd3475976f"
S = "${WORKDIR}/git"
inherit cmake
inherit ptest
EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DFMT_TEST=OFF -DFMT_DOC=OFF -DBUILD_SHARED_LIBS=ON -DFMT_INSTALL=ON -DFMT_SYSTEM_HEADERS=ON"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,16 @@
SUMMARY = "C++ functional terminal UI"
DESCRIPTION = "{ftxui}: A simple cross-platform C++ library for terminal based user interfaces!"
HOMEPAGE = "https://arthursonzogni.github.io/FTXUI"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=602507f167b627b30ce2cd7a24d50ea3"
SRC_URI = "git://github.com/ArthurSonzogni/FTXUI.git;branch=main;protocol=https"
SRCREV = "5cfed50702f52d51c1b189b5f97f8beaf5eaa2a6"
S = "${WORKDIR}/git"
inherit cmake
EXTRA_OECMAKE += " -DBUILD_SHARED_LIBS=ON "
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,37 @@
DESCRIPTION = "Google's framework for writing C++ tests"
HOMEPAGE = "https://github.com/google/googletest"
SECTION = "libs"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=cbbd27594afd089daa160d3a16dd515a"
PROVIDES += "gmock gtest"
S = "${WORKDIR}/git"
SRCREV = "f8d7d77c06936315286eb55f8de22cd23c188571"
SRC_URI = "git://github.com/google/googletest.git;branch=main;protocol=https"
inherit cmake pkgconfig
# allow for shared libraries, but do not default to them
#
PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
CXXFLAGS:append = " -fPIC"
ALLOW_EMPTY:${PN} = "1"
ALLOW_EMPTY:${PN}-dbg = "1"
# -staticdev will not be implicitly put into an SDK, so we add an rdepend
# if we are not building shared libraries
#
RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG","shared","","${PN}-staticdev",d)}"
BBCLASSEXTEND = "native nativesdk"
do_configure:prepend() {
# explicitly use python3
# the scripts are already python3 compatible since https://github.com/google/googletest/commit/d404af0d987a9c38cafce82a7e26ec8468c88361 and other fixes like this
# but since this oe-core change http://git.openembedded.org/openembedded-core/commit/?id=5f8f16b17f66966ae91aeabc23e97de5ecd17447
# there isn't python in HOSTTOOLS so "env python" fails
sed -i 's@^#!/usr/bin/env python$@#!/usr/bin/env python3@g' ${S}/googlemock/test/*py ${S}/googletest/test/*py
}

View File

@@ -0,0 +1,17 @@
SUMMARY = "JSON schema validator for JSON for Modern C++"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c441d022da1b1663c70181a32225d006"
SRC_URI = "git://github.com/pboettch/json-schema-validator;branch=main;protocol=https \
"
SRCREV = "c780404a84dd9ba978ba26bc58d17cb43fa7bc80"
S = "${WORKDIR}/git"
DEPENDS += "nlohmann-json"
inherit cmake
EXTRA_OECMAKE = "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DJSON_VALIDATOR_BUILD_EXAMPLES=OFF -DJSON_VALIDATOR_BUILD_TESTS=OFF -DJSON_VALIDATOR_INSTALL=ON -DJSON_VALIDATOR_BUILD_SHARED_LIBS=ON"
TARGET_CFLAGS += "-Wno-narrowing"

View File

@@ -0,0 +1,70 @@
SUMMARY = "Canonical libwebsockets.org websocket library"
HOMEPAGE = "https://libwebsockets.org/"
LICENSE = "MIT & Zlib & BSD-3-Clause & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b5d391cc7929bcba238f9ba6805f7574"
DEPENDS = "zlib"
DEPENDS:append:class-native = " libcap-native"
S = "${WORKDIR}/git"
SRCREV = "85c6f7959fd40d8aaf7a50be3c9b75f08389a01c"
SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.5-stable"
UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
inherit cmake pkgconfig
PACKAGECONFIG ?= "libuv libcap client server http2 ssl streamcompress ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON,"
PACKAGECONFIG[examples] = "-DLWS_WITH_MINIMAL_EXAMPLES=ON,-DLWS_WITH_MINIMAL_EXAMPLES=OFF,"
PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF,"
PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF,"
PACKAGECONFIG[libcap] = "-DLWS_WITH_LIBCAP=ON,-DLWS_WITH_LIBCAP=OFF,libcap"
PACKAGECONFIG[libevent] = "-DLWS_WITH_LIBEVENT=ON,-DLWS_WITH_LIBEVENT=OFF,libevent"
PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl"
PACKAGECONFIG[static] = "-DLWS_WITH_STATIC=ON,-DLWS_WITH_STATIC=OFF -DLWS_LINK_TESTAPPS_DYNAMIC=ON,"
PACKAGECONFIG[streamcompress] = "-DLWS_WITH_HTTP_STREAM_COMPRESSION=ON,-DLWS_WITH_HTTP_STREAM_COMPRESSION=OFF,zlib"
PACKAGECONFIG[systemd] = "-DLWS_WITH_SDEVENT=ON,-DLWS_WITH_SDEVENT=OFF,systemd"
python __anonymous() {
if bb.utils.contains('PACKAGECONFIG', 'systemd', True, False, d) and not bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d):
bb.fatal("PACKAGECONFIG contains systemd but DISTRO_FEATURES doesn't")
}
EXTRA_OECMAKE += " \
-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
"
do_install:append() {
sed -i -e 's|${STAGING_LIBDIR}/libcrypto.so|crypto|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
sed -i -e 's|${STAGING_LIBDIR}/libssl.so|ssl|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
sed -i -e 's|${STAGING_LIBDIR}/libuv.so|uv|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
sed -i -e 's|${STAGING_INCDIR}||g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake \
${D}${libdir}/cmake/libwebsockets/libwebsockets-config.cmake
sed -i -e 's|${STAGING_LIBDIR}/||g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake \
${D}${libdir}/cmake/libwebsockets/libwebsockets-config.cmake
}
PACKAGES =+ "${PN}-testapps ${PN}-evlib-event ${PN}-evlib-uv ${PN}-evlib-ev ${PN}-evlib-sd"
FILES:${PN}-testapps += "${datadir}/libwebsockets-test-server/* ${bindir}/libwebsockets-test-*"
FILES:${PN}-evlib-event += "${libdir}/libwebsockets-evlib_event.so"
FILES:${PN}-evlib-uv += "${libdir}/libwebsockets-evlib_uv.so"
FILES:${PN}-evlib-ev += "${libdir}/libwebsockets-evlib_ev.so"
FILES:${PN}-evlib-sd += "${libdir}/libwebsockets-evlib_sd.so"
RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libevent', '${PN}-evlib-event', '', d)}"
RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libuv', '${PN}-evlib-uv', '', d)}"
RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libev', '${PN}-evlib-ev', '', d)}"
RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'systemd', '${PN}-evlib-sd', '', d)}"
RDEPENDS:${PN}-dev += " ${@bb.utils.contains('PACKAGECONFIG', 'static', '${PN}-staticdev', '', d)}"
# Avoid absolute paths to end up in the sysroot.
SSTATE_SCAN_FILES += "*.cmake"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,30 @@
SUMMARY = "JSON for modern C++"
HOMEPAGE = "https://nlohmann.github.io/json/"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=3b489645de9825cca5beeb9a7e18b6eb"
CVE_PRODUCT = "json-for-modern-cpp"
SRC_URI = "git://github.com/nlohmann/json.git;nobranch=1;protocol=https \
"
SRCREV = "55f93686c01528224f448c19128836e7df245f72"
S = "${WORKDIR}/git"
inherit cmake
EXTRA_OECMAKE += "-DJSON_BuildTests=OFF -DJSON_MultipleHeaders=ON"
# nlohmann-json is a header only C++ library, so the main package will be empty.
RDEPENDS:${PN}-dev = ""
BBCLASSEXTEND = "native nativesdk"
# other packages commonly reference the file directly as "json.hpp"
# create symlink to allow this usage
do_install:append() {
ln -s nlohmann/json.hpp ${D}${includedir}/json.hpp
}

View File

@@ -0,0 +1,11 @@
[Unit]
Description=Node-RED
[Service]
Environment=NODE_ENV=production
ExecStart=/bin/su root -c 'node /usr/lib/node_modules/node-red/red.js'
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,42 @@
DESCRIPTION = "Node-RED"
HOMEPAGE = "http://nodered.org"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d6f37569f5013072e9490d2194d10ae6"
inherit npm
PR = "r0"
SRC_URI = "\
git://github.com/node-red/node-red.git;protocol=https;branch=master \
npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
file://${BPN}.service \
file://Fixup-dependencies-for-newer-npm-versions.patch \
"
SRCREV = "173e75175eb1c40e7b11c8da4bccba8f2eb22937"
S = "${WORKDIR}/git/packages/node_modules/${BPN}"
EXTRA_OENPM = "--offline=false --proxy=false"
do_install:append() {
# Service
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_unitdir}/system/
# Remove hardware specific files
rm ${D}/${bindir}/${BPN}-pi
rm -rf ${D}/${libdir}/node_modules/${BPN}/bin
}
inherit systemd
SYSTEMD_AUTO_ENABLE = "enable"
SYSTEMD_SERVICE:${PN} = "${BPN}.service"
FILES:${PN} += "\
${systemd_unitdir} \
"
INSANE_SKIP:${PN} += "staticdev"

View File

@@ -0,0 +1,25 @@
SUMMARY = "Light-weight C++ XML Processing Library"
DESCRIPTION = "pugixml is a C++ XML processing library, which consists of a \
DOM-like interface with rich traversal/modification capabilities, \
an extremely fast XML parser which constructs the DOM tree from \
n XML file/buffer, and an XPath 1.0 implementation for complex \
data-driven tree queries."
HOMEPAGE = "https://pugixml.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=5dbb98bbc2e5051c26ce32508b4f703e"
SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
SRC_URI[sha256sum] = "655ade57fa703fb421c2eb9a0113b5064bddb145d415dd1f88c79353d90d511a"
UPSTREAM_CHECK_URI = "https://github.com/zeux/${BPN}/releases"
UPSTREAM_CHECK_REGEX = "releases/tag/v(?P<pver>\d+(\.\d+)+)"
inherit cmake
EXTRA_OECMAKE += "-DBUILD_PKGCONFIG=ON \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,15 @@
SUMMARY = "aiofile: Asynchronous file operations."
HOMEPAGE = "http://github.com/mosquito/aiofile"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENCE;md5=d8d1d59c60e60e8627fcd1c350a5c904"
SRC_URI[sha256sum] = "a8f9dec17282b3583337c4ef2d1a67f33072ab80dd03608041ed9e71b88dc521"
PYPI_PACKAGE = "aiofile"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-caio \
"

View File

@@ -0,0 +1,13 @@
SUMMARY = "caio: Asynchronous file IO for Linux MacOS or Windows."
HOMEPAGE = "https://github.com/mosquito/caio"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI[sha256sum] = "d2be553738dd793f8a01a60316f2c5284fbf152219241c0c67ca05f650a37a37"
PYPI_PACKAGE = "caio"
inherit pypi setuptools3
RDEPENDS:${PN} += "python3-multiprocessing"

View File

@@ -0,0 +1,15 @@
SUMMARY = "environs: simplified environment variable parsing"
HOMEPAGE = "https://github.com/sloria/environs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a49f11890d809ccbf7d326a2df842aaf"
SRC_URI[md5sum] = "7df5cb194ff30a004e1f03d9b4fdbee6"
PYPI_PACKAGE = "environs"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-python-dotenv \
"

View File

@@ -0,0 +1,15 @@
SUMMARY = "marshmallow: A lightweight library for converting complex datatypes to and from native Python datatypes."
HOMEPAGE = "https://github.com/marshmallow-code/marshmallow"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5bccd400dedfa74364481e56aacc0b4a"
SRC_URI[sha256sum] = "5d2371bbe42000f2b3fb5eaa065224df7d8f8597bc19a1bbfa5bfe7fba8da889"
PYPI_PACKAGE = "marshmallow"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-packaging \
"

View File

@@ -0,0 +1,11 @@
SUMMARY = "netifaces: Portable network interface information."
HOMEPAGE = "https://github.com/al45tair/netifaces"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e4677613c25bf3673bfee98c0cc52202"
SRC_URI[sha256sum] = "043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32"
PYPI_PACKAGE = "netifaces"
inherit pypi setuptools3

View File

@@ -0,0 +1,11 @@
SUMMARY = "packaging: Core utilities for Python packages"
HOMEPAGE = "https://github.com/pypa/packaging"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91"
SRC_URI[sha256sum] = "dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"
PYPI_PACKAGE = "packaging"
inherit pypi setuptools3

View File

@@ -0,0 +1,55 @@
SUMMARY = "Poetry PEP 517 Build Backend"
DESCRIPTION = "Poetry PEP 517 Build Backend"
HOMEPAGE = "https://github.com/python-poetry/poetry-core"
BUGTRACKER = "https://github.com/python-poetry/poetry-core"
CHANGELOG = "https://github.com/python-poetry/poetry-core/blob/master/CHANGELOG.md"
LICENSE = "Apache-2.0 & BSD-2-Clause & MIT"
LIC_FILES_CHKSUM = "\
file://LICENSE;md5=78c39cfd009863ae44237a7ab1f9cedc \
file://src/poetry/core/_vendor/attr/_version_info.py;beginline=1;endline=1;md5=b2dccaa94b3629a08bfb4f983cad6f89 \
file://src/poetry/core/_vendor/attrs/LICENSE;md5=5e55731824cf9205cfabeab9a0600887 \
file://src/poetry/core/_vendor/jsonschema/COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \
file://src/poetry/core/_vendor/lark/LICENSE;md5=fcfbf1e2ecc0f37acbb5871aa0267500 \
file://src/poetry/core/_vendor/packaging/LICENSE;md5=faadaedca9251a90b205c9167578ce91 \
file://src/poetry/core/_vendor/packaging/LICENSE.APACHE;md5=2ee41112a44fe7014dce33e26468ba93 \
file://src/poetry/core/_vendor/packaging/LICENSE.BSD;md5=7bef9bf4a8e4263634d0597e7ba100b8 \
file://src/poetry/core/_vendor/pyparsing/LICENSE;md5=657a566233888513e1f07ba13e2f47f1 \
file://src/poetry/core/_vendor/pyrsistent/LICENSE.mit;md5=b695eb9c6e7a6fb1b1bc2d193c42776e \
file://src/poetry/core/_vendor/tomlkit/LICENSE;md5=31aac0dbc1babd278d5386dadb7f8e82 \
file://src/poetry/core/_vendor/typing_extensions.LICENSE;md5=f16b323917992e0f8a6f0071bc9913e2 \
"
SRC_URI[sha256sum] = "514bd33c30e0bf56b0ed44ee15e120d7e47b61ad908b2b1011da68c48a84ada9"
inherit python_poetry_core pypi
PYPI_ARCHIVE_NAME = "poetry_core-${PV}.${PYPI_PACKAGE_EXT}"
S = "${WORKDIR}/poetry_core-${PV}"
# FIXME (aw): because in kirkstone poetry install itself by using itself
do_compile:prepend () {
test -L ${S}/poetry || ln -s ${S}/src/poetry ${S}/poetry
}
SRC_URI += "file://deterministic.patch"
RDEPENDS:${PN}:append:class-target = "\
python3-compression \
python3-core \
python3-crypt \
python3-io \
python3-json \
python3-logging \
python3-netclient \
python3-pathlib2 \
python3-pprint \
python3-shell \
"
RDEPENDS:${PN} += "\
python3-pip \
python3-six \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,14 @@
SUMMARY = "Enables Python programs to dynamically access arbitrary Java objects"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=92361a2681db50d1bc207c47c49c1a8e"
SRC_URI[md5sum] = "22345a5235af2e003da25554732f2193"
SRC_URI[wheel.md5sum] = "8667328e99732d4577eeb85d1ded8db8"
PYPI_PACKAGE = "py4j"
PYPI_WHEEL_NAME = "py4j-0.10.9.7-py2.py3-none-any.whl"
inherit pypi_wheel
FILES:${PN} += "${datadir}/*"

View File

@@ -0,0 +1,20 @@
SUMMARY = "Data validation and settings management using Python type hinting"
HOMEPAGE = "https://github.com/samuelcolvin/pydantic"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2c02ea30650b91528657db64baea1757"
inherit pypi setuptools3
SRC_URI[sha256sum] = "b9a3859f24eb4e097502a3be1fb4b2abb79b6103dd9e2e0edb70613a4459a648"
RDEPENDS:${PN} += "\
${PYTHON_PN}-typing-extensions \
${PYTHON_PN}-core \
${PYTHON_PN}-numbers \
${PYTHON_PN}-json \
${PYTHON_PN}-datetime \
${PYTHON_PN}-io \
${PYTHON_PN}-netclient \
${PYTHON_PN}-image \
${PYTHON_PN}-logging \
"

View File

@@ -0,0 +1,11 @@
SUMMARY = "python-dotenv: Read key-value pairs from a .env file and set them as environment variables"
HOMEPAGE = "https://github.com/marshmallow-code/marshmallow"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e914cdb773ae44a732b392532d88f072"
SRC_URI[sha256sum] = "a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"
PYPI_PACKAGE = "python-dotenv"
inherit pypi setuptools3

View File

@@ -0,0 +1,29 @@
SUMMARY = "typing-extensions: Backported and Experimental Type Hints for Python 3.7+"
HOMEPAGE = "https://github.com/python/typing_extensions"
LICENSE = "PSF-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fcf6b249c2641540219a727f35d8d2c2"
SRC_URI[sha256sum] = "b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"
PYPI_PACKAGE = "typing_extensions"
inherit pypi setuptools3 python3-dir
do_configure:prepend() {
cat > setup.py <<-EOF
from setuptools import setup
setup(name='typing_extensions',
version="4.7.1",
package_dir={'': 'src'})
EOF
}
FILES:${PN} += "\
${libdir}/${PYTHON_DIR}/site-packages/typing_extensions.py \
"
do_install:append() {
cp ${S}/src/typing_extensions.py ${D}${libdir}/${PYTHON_DIR}/site-packages/
}

View File

@@ -0,0 +1,17 @@
SUMMARY = "Rapid YAML"
AUTHOR = "Joao Paulo Magalhaes"
HOMEPAGE = "https://github.com/biojppm/rapidyaml.git"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=11a6f80850f6993383976130ad87005e"
SRC_URI = "gitsm://github.com/biojppm/rapidyaml.git;branch=master;protocol=https"
inherit cmake
S = "${WORKDIR}/git"
PV = "v0.10.0"
SRCREV = "653eac9741c7728f2a87435b981737894149e002"
EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"

View File

@@ -0,0 +1,77 @@
SUMMARY = "libsystemd static library"
DESCRIPTION = "libsystemd static library built specifically as an integral component of sdbus-c++"
SECTION = "libs"
LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
inherit meson pkgconfig
DEPENDS += "gperf-native gettext-native util-linux libcap util-linux python3-jinja2-native"
SRCREV = "387a14a7b67b8b76adaed4175e14bb7e39b2f738"
SRCBRANCH = "v255-stable"
SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
file://static-libsystemd-pkgconfig.patch \
"
# patches needed by musl
SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}"
SRC_URI_MUSL = "\
file://0001-missing_type.h-add-comparison_fn_t.patch \
file://0002-add-fallback-parse_printf_format-implementation.patch \
file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
file://0003-src-basic-missing.h-check-for-missing-strndupa.patch \
file://0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
file://0005-add-missing-FTW_-macros-for-musl.patch \
file://0006-Use-uintmax_t-for-handling-rlim_t.patch \
file://0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
file://0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
file://0008-implment-systemd-sysv-install-for-OE.patch \
file://0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
file://0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
file://0011-avoid-redefinition-of-prctl_mm_map-structure.patch \
file://0012-do-not-disable-buffer-in-writing-files.patch \
file://0013-Handle-__cpu_mask-usage.patch \
file://0014-Handle-missing-gshadow.patch \
file://0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \
file://0016-pass-correct-parameters-to-getdents64.patch \
file://0017-Adjust-for-musl-headers.patch \
file://0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch \
file://0019-errno-util-Make-STRERROR-portable-for-musl.patch \
file://0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch \
file://0021-shared-Do-not-use-malloc_info-on-musl.patch \
file://0022-avoid-missing-LOCK_EX-declaration.patch \
"
PACKAGECONFIG ??= "gshadow idn"
PACKAGECONFIG:remove:libc-musl = " gshadow idn"
PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
CFLAGS:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
EXTRA_OEMESON += "-Dstatic-libsystemd=pic"
S = "${WORKDIR}/git"
RDEPENDS:${PN}-dev = ""
do_compile() {
ninja -v ${PARALLEL_MAKE} version.h
ninja -v ${PARALLEL_MAKE} libsystemd.a
ninja -v ${PARALLEL_MAKE} src/libsystemd/libsystemd.pc
}
do_install () {
install -d ${D}${libdir}
install ${B}/libsystemd.a ${D}${libdir}
install -d ${D}${includedir}/systemd
install ${S}/src/systemd/*.h ${D}${includedir}/systemd
install -d ${D}${libdir}/pkgconfig
install ${B}/src/libsystemd/libsystemd.pc ${D}${libdir}/pkgconfig
}

View File

@@ -0,0 +1,16 @@
SUMMARY = "sdbus-c++ native tools"
DESCRIPTION = "Native interface code generator for development with sdbus-c++"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
inherit cmake
DEPENDS += "expat"
SRCREV = "0261d0ec60b68c1f0a6ec9acf63d1379f7d569f8"
SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master;subpath=tools"
S = "${WORKDIR}/tools"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,6 @@
#!/bin/sh
set -e
./sdbus-c++-unit-tests 2>&1 && echo "PASS: sdbus-c++-unit-tests" || echo "FAIL: sdbus-c++-unit-tests"
./sdbus-c++-integration-tests 2>&1 && echo "PASS: sdbus-c++-integration-tests" || echo "FAIL: sdbus-c++-integration-tests"

View File

@@ -0,0 +1,51 @@
SUMMARY = "sdbus-c++"
DESCRIPTION = "High-level C++ D-Bus library designed to provide easy-to-use yet powerful API in modern C++"
SECTION = "libs"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
inherit cmake pkgconfig systemd ptest
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'with-external-libsystemd', 'with-builtin-libsystemd', d)} \
${@bb.utils.contains('PTEST_ENABLED', '1', 'with-tests', '', d)}"
PACKAGECONFIG[with-builtin-libsystemd] = ",,sdbus-c++-libsystemd,libcap,basu"
PACKAGECONFIG[with-external-libsystemd] = ",,systemd,libsystemd"
PACKAGECONFIG[with-tests] = "-DSDBUSCPP_BUILD_TESTS=ON -DSDBUSCPP_INSTALL_TESTS=ON -DSDBUSCPP_TESTS_INSTALL_PATH=${PTEST_PATH},-DSDBUSCPP_BUILD_TESTS=OFF,googletest gmock"
DEPENDS += "expat"
PV = "v2.2.1"
SRCREV = "28b78822cfc5fbec4bd9906168493e9985f586ed"
SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master \
file://run-ptest"
EXTRA_OECMAKE = "-DSDBUSCPP_BUILD_CODEGEN=OFF \
-DSDBUSCPP_BUILD_DOCS=ON \
-DSDBUSCPP_BUILD_DOXYGEN_DOCS=OFF"
S = "${WORKDIR}/git"
# Link libatomic on architectures without 64bit atomics fixes
# libsdbus-c++.so.1.1.0: undefined reference to `__atomic_load_8'
LDFLAGS:append:mips = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
LDFLAGS:append:powerpc = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
LDFLAGS:append:riscv32 = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
do_install:append() {
if ! ${@bb.utils.contains('PTEST_ENABLED', '1', 'true', 'false', d)}; then
rm -rf ${D}${sysconfdir}/dbus-1
fi
}
do_install_ptest() {
DESTDIR='${D}' cmake_runcmake_build --target tests/install
}
FILES:${PN}-ptest =+ "${sysconfdir}/dbus-1/system.d/"
FILES:${PN}-dev += "${bindir}/sdbus-c++-xml2cpp"
RDEPENDS:${PN}-ptest += "dbus"
# It adds -isystem which is spurious, no idea where it gets it from
CCACHE_DISABLE = "1"

View File

@@ -0,0 +1,22 @@
SUMMARY = "Provider for integration of TPM 2.0 to OpenSSL 3.X"
DESCRIPTION = "The tpm2-openssl project implements a provider \
that integrates the Trusted Platform Module (TPM 2.0) operations \
to the OpenSSL 3.x, which is the next version of OpenSSL after 1.1.1."
HOMEPAGE = "https://github.com/tpm2-software/tpm2-openssl"
SECTION = "tpm"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3f4b4cb00f4d0d6807a0dc79759a57ac"
SRC_URI = "https://github.com/tpm2-software/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.gz"
SRC_URI[sha256sum] = "9a9aca55d4265ec501bcf9c56d21d6ca18dba902553f21c888fe725b42ea9964"
UPSTREAM_CHECK_URI = "https://github.com/tpm2-software/${BPN}/releases"
UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)"
DEPENDS = "autoconf-archive-native tpm2-tss openssl"
inherit autotools pkgconfig
FILES:${PN} = "${libdir}/ossl-modules/*"

View File

@@ -0,0 +1,14 @@
SUMMARY = "A portable MQTT C client for embedded systems and PCs alike"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9226377baf0b79174c89a1ab55592456"
SRC_URI = "git://github.com/LiamBindle/MQTT-C;protocol=http;branch=master;protocol=https \
file://0001-Add-cmake-package-config.patch \
"
SRCREV = "f69ce1e7fd54f3b1834c9c9137ce0ec5d703cb4d"
S = "${WORKDIR}/git"
inherit cmake

View File

@@ -0,0 +1,10 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
python __anonymous() {
pv = d.getVar("PV")
if bb.utils.vercmp_string_op(pv, "3.0.19", "<"):
d.appendVar("SRC_URI", " file://openssl-3.0.8-feat-updates-to-support-status_request_v2.patch")
else:
d.appendVar("SRC_URI", " file://openssl-3.0.19-feat-updates-to-support-status_request_v2.patch")
}

View File

@@ -0,0 +1,29 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
# ev-cli move to everest-core, include the version from there in this recipe
require ../everest/everest-core_git.inc
SETUPTOOLS_SETUP_PATH = "${S}/applications/utils/ev-dev-tools"
inherit setuptools3
do_configure:prepend() {
cat > ${SETUPTOOLS_SETUP_PATH}/setup.py <<-EOF
from setuptools import setup
setup()
EOF
}
DEPENDS = "python3-pip-native"
RDEPENDS:${PN} = " \
pip-stringcase \
python3-jsonschema \
python3-pyyaml \
python3-jinja2 \
"
BBCLASSEXTEND = "native"
BBCLASSEXTEND:append = " nativesdk"

View File

@@ -0,0 +1,15 @@
# The is automatic generated Code by "makePipRecipes.py"
# (build by Robin Sebastian (https://github.com/robseb) (git@robseb.de) Vers.: 1.2)
SUMMARY = "Recipe to embedded the Python PiP Package stringcase"
HOMEPAGE ="https://pypi.org/project/stringcase"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=59260a4045da59ac7cb0820ac544b150"
inherit pypi setuptools3_legacy
PYPI_PACKAGE = "stringcase"
SRC_URI[md5sum] = "5cb2a0b28f227f19dc830b66f6e46b52"
SRC_URI[sha256sum] = "48a06980661908efe8d9d34eab2b6c13aefa2163b3ced26972902e3bdfd87008"
BBCLASSEXTEND = "native"
BBCLASSEXTEND:append = " nativesdk"

View File

@@ -0,0 +1,264 @@
# generated by running:
# devtool add https://github.com/EVerest/everest-admin-panel.git --srcbranch main --srcrev 2ff6acd659ea0ce012e42e02d73819130484081f
LICENSE = "0BSD & Apache-2.0 & BSD-2-Clause & BSD-3-Clause & ISC & MIT & Python-2.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \
file://node_modules/@babel/helper-string-parser/LICENSE;md5=b1d0cd283a346e919abb3beeb018279d \
file://node_modules/@babel/helper-validator-identifier/LICENSE;md5=b1d0cd283a346e919abb3beeb018279d \
file://node_modules/@babel/parser/LICENSE;md5=3b324af8e79986f4a5621efa85dd1292 \
file://node_modules/@babel/types/LICENSE;md5=b1d0cd283a346e919abb3beeb018279d \
file://node_modules/@fontsource/roboto/LICENSE;md5=01a64f52f3fda01d260e2b6757c1f748 \
file://node_modules/@highlightjs/vue-plugin/LICENSE;md5=6b77a8a192fe40f7cc1e606f8a7ba5f1 \
file://node_modules/@jridgewell/sourcemap-codec/LICENSE;md5=fe86de92781b32da4a26ca689959c26d \
file://node_modules/@json-layout/core/LICENSE;md5=0095eb1c730fab6cfb3b7403284599d5 \
file://node_modules/@json-layout/core/node_modules/entities/LICENSE;md5=d5b9cb3bc7f6ffd7bea8661f30447c11 \
file://node_modules/@json-layout/core/node_modules/linkify-it/LICENSE;md5=e2f6d3a49c2238880c1d728ddc187f7a \
file://node_modules/@json-layout/core/node_modules/markdown-it/LICENSE;md5=4323c95e1014fb58368f2d4c2b78064b \
file://node_modules/@json-layout/core/node_modules/mdurl/LICENSE;md5=4dd6bce4f4fc62f6f51f603c406c145b \
file://node_modules/@json-layout/core/node_modules/uc.micro/LICENSE.txt;md5=ee9bd8b835cfcd512dd644540dd96987 \
file://node_modules/@json-layout/vocabulary/LICENSE;md5=0095eb1c730fab6cfb3b7403284599d5 \
file://node_modules/@koumoul/vjsf/LICENSE;md5=0cf31bb9e2152bcb0ec2adeefcec6469 \
file://node_modules/@koumoul/vjsf/node_modules/@json-layout/core/LICENSE;md5=0095eb1c730fab6cfb3b7403284599d5 \
file://node_modules/@koumoul/vjsf/node_modules/@json-layout/vocabulary/LICENSE;md5=0095eb1c730fab6cfb3b7403284599d5 \
file://node_modules/@koumoul/vjsf/node_modules/entities/LICENSE;md5=d5b9cb3bc7f6ffd7bea8661f30447c11 \
file://node_modules/@koumoul/vjsf/node_modules/linkify-it/LICENSE;md5=e2f6d3a49c2238880c1d728ddc187f7a \
file://node_modules/@koumoul/vjsf/node_modules/markdown-it/LICENSE;md5=4323c95e1014fb58368f2d4c2b78064b \
file://node_modules/@koumoul/vjsf/node_modules/mdurl/LICENSE;md5=4dd6bce4f4fc62f6f51f603c406c145b \
file://node_modules/@koumoul/vjsf/node_modules/uc.micro/LICENSE.txt;md5=ee9bd8b835cfcd512dd644540dd96987 \
file://node_modules/@mdi/font/LICENSE;md5=7f104afa30591ec383c5140124c88aef \
file://node_modules/@rollup/plugin-commonjs/LICENSE;md5=62156287ac5c93a99f7e0d75ad31c2bf \
file://node_modules/@rollup/pluginutils/LICENSE;md5=62156287ac5c93a99f7e0d75ad31c2bf \
file://node_modules/@types/estree/LICENSE;md5=d4a904ca135bb7bc912156fee12726f0 \
file://node_modules/@types/linkify-it/LICENSE;md5=d4a904ca135bb7bc912156fee12726f0 \
file://node_modules/@types/markdown-it/LICENSE;md5=d4a904ca135bb7bc912156fee12726f0 \
file://node_modules/@types/mdurl/LICENSE;md5=d4a904ca135bb7bc912156fee12726f0 \
file://node_modules/@types/web-bluetooth/LICENSE;md5=d4a904ca135bb7bc912156fee12726f0 \
file://node_modules/@vue/compat/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vue/compiler-core/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vue/compiler-dom/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vue/compiler-sfc/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vue/compiler-ssr/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vue/reactivity/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vue/runtime-core/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vue/runtime-dom/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vue/server-renderer/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vue/shared/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/@vueuse/core/LICENSE;md5=558512d335cce23b3acb71df7f617cc9 \
file://node_modules/@vueuse/metadata/LICENSE;md5=558512d335cce23b3acb71df7f617cc9 \
file://node_modules/@vueuse/shared/LICENSE;md5=558512d335cce23b3acb71df7f617cc9 \
file://node_modules/ajv-errors/LICENSE;md5=ea87ade09b9e6da4f2e47904a4ee137b \
file://node_modules/ajv-formats/LICENSE;md5=b070047241b584db26163b1dca5206e0 \
file://node_modules/ajv-i18n/LICENSE;md5=715855234c57d97032971adfc0608a07 \
file://node_modules/ajv/LICENSE;md5=5ed8db7ae36f56c8a5cfc218c41ac926 \
file://node_modules/ansi-styles/license;md5=915042b5df33c31a6db2b37eadaa00e3 \
file://node_modules/argparse/LICENSE;md5=203a6dbc802ee896020a47161e759642 \
file://node_modules/ast-types/LICENSE;md5=446729a9826c1d80e95dab50c7d30639 \
file://node_modules/async/LICENSE;md5=73f63c1fa4541b2f2f34d77140ebe89d \
file://node_modules/balanced-match/LICENSE.md;md5=7fa99ddc3424107350ca6e9a24552085 \
file://node_modules/brace-expansion/LICENSE;md5=a5df515ef062cc3affd8c0ae59c059ec \
file://node_modules/chalk/license;md5=915042b5df33c31a6db2b37eadaa00e3 \
file://node_modules/color-convert/LICENSE;md5=9bdadfc9fbb3ab8d5a6d591bdbd52811 \
file://node_modules/color-name/LICENSE;md5=d301869b39e08b33665b7c4f16b8e41d \
file://node_modules/commondir/LICENSE;md5=31f6d70a3b756797901b2aff55cc7d7a \
file://node_modules/concat-map/LICENSE;md5=aea1cde69645f4b99be4ff7ca9abcce1 \
file://node_modules/core-js/LICENSE;md5=9b58c7623dca66a4985604ae0351502c \
file://node_modules/csstype/LICENSE;md5=e71640b3d80aa47c69967e588c744bfb \
file://node_modules/debug/LICENSE;md5=d85a365580888e9ee0a01fb53e8e9bf0 \
file://node_modules/ejs/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
file://node_modules/entities/LICENSE;md5=d5b9cb3bc7f6ffd7bea8661f30447c11 \
file://node_modules/esprima/LICENSE.BSD;md5=e3c825c932a984958bafbac21e21f984 \
file://node_modules/estree-walker/LICENSE;md5=535713f6259158ff4b0d63de5da7f078 \
file://node_modules/fast-deep-equal/LICENSE;md5=ea87ade09b9e6da4f2e47904a4ee137b \
file://node_modules/filelist/node_modules/minimatch/LICENSE;md5=8b78835ea26f80c9067a0e80a294d926 \
file://node_modules/fs.realpath/LICENSE;md5=062470525c8e380f8567f665ef554d11 \
file://node_modules/glob/LICENSE;md5=c66b78639358cd3f497d598618aa7c93 \
file://node_modules/glob/node_modules/minimatch/LICENSE;md5=8b78835ea26f80c9067a0e80a294d926 \
file://node_modules/has-flag/license;md5=915042b5df33c31a6db2b37eadaa00e3 \
file://node_modules/highlight.js/LICENSE;md5=1536cfb4c71fcc69423296231a64c1c4 \
file://node_modules/immer/LICENSE;md5=31f7d36ee7fe711a4628d22f779fc5ef \
file://node_modules/inflight/LICENSE;md5=90a3ca01a5efed8b813a81c6c8fa2e63 \
file://node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
file://node_modules/jake/node_modules/brace-expansion/LICENSE;md5=a5df515ef062cc3affd8c0ae59c059ec \
file://node_modules/jake/node_modules/minimatch/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
file://node_modules/js-yaml/LICENSE;md5=effd621a9bf5d72d6a7e6ef819bf3afb \
file://node_modules/json-schema-traverse/LICENSE;md5=ea87ade09b9e6da4f2e47904a4ee137b \
file://node_modules/just-clone/LICENSE;md5=9a101e543aed27cd8558f6376292442e \
file://node_modules/konva/LICENSE;md5=164b7922ad16f823f27788d36136a44b \
file://node_modules/linkify-it/LICENSE;md5=e2f6d3a49c2238880c1d728ddc187f7a \
file://node_modules/magic-string/LICENSE;md5=17b8fdc59ea5ccf4488260421093f766 \
file://node_modules/magicast/LICENSE;md5=b4c5d677d375a378ad97f463accfbce2 \
file://node_modules/markdown-it/LICENSE;md5=4323c95e1014fb58368f2d4c2b78064b \
file://node_modules/mdurl/LICENSE;md5=4dd6bce4f4fc62f6f51f603c406c145b \
file://node_modules/mitt/LICENSE;md5=4ed316158806c1e39b6b6e457c85b10f \
file://node_modules/ms/license.md;md5=fd56fd5f1860961dfa92d313167c37a6 \
file://node_modules/nanoid/LICENSE;md5=237c21016e56a1ee4475a39fc00d1504 \
file://node_modules/notyf/LICENSE.md;md5=ce2fd27755b03c15b9a2faf59d4cb062 \
file://node_modules/once/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
file://node_modules/picocolors/LICENSE;md5=8aabd5d21f92335888d962fb6ca980f8 \
file://node_modules/picomatch/LICENSE;md5=abd0e25891525eb13d5a794f550a6ee4 \
file://node_modules/pinia/LICENSE;md5=c6972b63f41e7aa5567e73d7c133fd47 \
file://node_modules/postcss/LICENSE;md5=e0ef868fdaaba6859dcbab082c20439b \
file://node_modules/punycode.js/LICENSE-MIT.txt;md5=ee9bd8b835cfcd512dd644540dd96987 \
file://node_modules/punycode/LICENSE-MIT.txt;md5=ee9bd8b835cfcd512dd644540dd96987 \
file://node_modules/recast/LICENSE;md5=3a48a43d5f60ffc26b75ceb41c3d5e04 \
file://node_modules/require-from-string/license;md5=be72c3ad86c1c4e9578a1945b082b17d \
file://node_modules/source-map-js/LICENSE;md5=b1ca6dbc0075d56cbd9931a75566cd44 \
file://node_modules/source-map/LICENSE;md5=b1ca6dbc0075d56cbd9931a75566cd44 \
file://node_modules/splitpanes/LICENSE;md5=9908168fcd63d59c0294fc0716f0589d \
file://node_modules/supports-color/license;md5=915042b5df33c31a6db2b37eadaa00e3 \
file://node_modules/tiny-invariant/LICENSE;md5=eb3cc0ef664b9772890bad9afc4c8274 \
file://node_modules/to-fast-properties/license;md5=a3b54a26fb11cf7129550e6ffc7807ea \
file://node_modules/tslib/CopyrightNotice.txt;md5=cb391e9e435b114c07bee8f6754c4f98 \
file://node_modules/tslib/LICENSE.txt;md5=f938d99cba29007eeae26d80a9a4cfa6 \
file://node_modules/uc.micro/LICENSE.txt;md5=ee9bd8b835cfcd512dd644540dd96987 \
file://node_modules/uri-js/LICENSE;md5=3b55dad4a98748003b5b423477713da1 \
file://node_modules/vee-validate/LICENSE;md5=776e453114b988e720953109d13f1ba1 \
file://node_modules/vue-class-component/LICENSE;md5=761fb17e53b4b87a0507c26d4bd5bfa4 \
file://node_modules/vue-demi/LICENSE;md5=4d2312fbab0cb8f620968a69c30b11b8 \
file://node_modules/vue-property-decorator/LICENSE;md5=39a26518d5ca1ab24b5c7d7bff548214 \
file://node_modules/vue-router/LICENSE;md5=c6972b63f41e7aa5567e73d7c133fd47 \
file://node_modules/vue/LICENSE;md5=80753afcd3540ce1f845ee2cc8f33114 \
file://node_modules/vuetify/LICENSE.md;md5=7bc9752a662af260bad24e8c01e3b47d \
file://node_modules/wrappy/LICENSE;md5=82703a69f6d7411dde679954c2fd9dca \
file://node_modules/@fontsource/open-sans-condensed/README.md;md5=ae5614fcc5f29064642a61582e030c9c \
file://node_modules/filelist/README.md;md5=0ac6536990331f035d4c3b2995031e00 \
file://node_modules/is-reference/README.md;md5=1ae863bf798164adb824f7ec768eb094 \
file://node_modules/jake/README.md;md5=90aba202619b2a9b4a046973a2a96c99 \
file://node_modules/vee-validate/node_modules/type-fest/readme.md;md5=140b5fb52a7590de9d27eba661a38176"
SRC_URI = "https://github.com/EVerest/everest-admin-panel/releases/download/v0.2.0/everest-admin-panel.tar.gz;subdir=${S}/everest-admin-panel \
npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \
"
SRC_URI[sha256sum] = "d7f1e878306311884fc869f75370391ae0494f6841e24a992245b2a659217263"
FILES:${PN} += "${datadir}/everest/www/*"
do_install() {
install -d ${D}/usr/share/everest/www
cp -a --no-preserve=ownership ${S}/everest-admin-panel/* ${D}/usr/share/everest/www/
}
INSANE_SKIP:${PN} += "file-rdeps"
LICENSE:${PN} = "Apache-2.0"
LICENSE:${PN}-babel-helper-string-parser = "MIT"
LICENSE:${PN}-babel-helper-validator-identifier = "MIT"
LICENSE:${PN}-babel-parser = "MIT"
LICENSE:${PN}-babel-types = "MIT"
LICENSE:${PN}-fontsource-open-sans-condensed = "MIT"
LICENSE:${PN}-fontsource-roboto = "Apache-2.0"
LICENSE:${PN}-highlightjs-vue-plugin = "BSD-3-Clause"
LICENSE:${PN}-jridgewell-sourcemap-codec = "MIT"
LICENSE:${PN}-json-layout-core-entities = "BSD-2-Clause"
LICENSE:${PN}-json-layout-core-linkify-it = "MIT"
LICENSE:${PN}-json-layout-core-markdown-it = "MIT"
LICENSE:${PN}-json-layout-core-mdurl = "MIT"
LICENSE:${PN}-json-layout-core-ucmicro = "MIT"
LICENSE:${PN}-json-layout-core = "MIT"
LICENSE:${PN}-json-layout-vocabulary = "MIT"
LICENSE:${PN}-koumoul-vjsf-json-layout-core = "MIT"
LICENSE:${PN}-koumoul-vjsf-json-layout-vocabulary = "MIT"
LICENSE:${PN}-koumoul-vjsf-entities = "BSD-2-Clause"
LICENSE:${PN}-koumoul-vjsf-linkify-it = "MIT"
LICENSE:${PN}-koumoul-vjsf-markdown-it = "MIT"
LICENSE:${PN}-koumoul-vjsf-mdurl = "MIT"
LICENSE:${PN}-koumoul-vjsf-ucmicro = "MIT"
LICENSE:${PN}-koumoul-vjsf = "MIT"
LICENSE:${PN}-mdi-font = "Apache-2.0"
LICENSE:${PN}-rollup-plugin-commonjs = "MIT"
LICENSE:${PN}-rollup-pluginutils = "MIT"
LICENSE:${PN}-types-estree = "MIT"
LICENSE:${PN}-types-linkify-it = "MIT"
LICENSE:${PN}-types-markdown-it = "MIT"
LICENSE:${PN}-types-mdurl = "MIT"
LICENSE:${PN}-types-web-bluetooth = "MIT"
LICENSE:${PN}-vue-compat = "MIT"
LICENSE:${PN}-vue-compiler-core = "MIT"
LICENSE:${PN}-vue-compiler-dom = "MIT"
LICENSE:${PN}-vue-compiler-sfc = "MIT"
LICENSE:${PN}-vue-compiler-ssr = "MIT"
LICENSE:${PN}-vue-devtools-api = "MIT"
LICENSE:${PN}-vue-reactivity = "MIT"
LICENSE:${PN}-vue-runtime-core = "MIT"
LICENSE:${PN}-vue-runtime-dom = "MIT"
LICENSE:${PN}-vue-server-renderer = "MIT"
LICENSE:${PN}-vue-shared = "MIT"
LICENSE:${PN}-vueuse-core = "MIT"
LICENSE:${PN}-vueuse-metadata = "MIT"
LICENSE:${PN}-vueuse-shared = "MIT"
LICENSE:${PN}-ajv = "MIT"
LICENSE:${PN}-ajv-errors = "MIT"
LICENSE:${PN}-ajv-formats = "MIT"
LICENSE:${PN}-ajv-i18n = "MIT"
LICENSE:${PN}-ansi-styles = "MIT"
LICENSE:${PN}-argparse = "Python-2.0"
LICENSE:${PN}-ast-types = "MIT"
LICENSE:${PN}-async = "MIT"
LICENSE:${PN}-balanced-match = "MIT"
LICENSE:${PN}-brace-expansion = "MIT"
LICENSE:${PN}-chalk = "MIT"
LICENSE:${PN}-color-convert = "MIT"
LICENSE:${PN}-color-name = "MIT"
LICENSE:${PN}-commondir = "MIT"
LICENSE:${PN}-concat-map = "MIT"
LICENSE:${PN}-core-js = "MIT"
LICENSE:${PN}-csstype = "MIT"
LICENSE:${PN}-debug = "MIT"
LICENSE:${PN}-ejs = "Apache-2.0"
LICENSE:${PN}-entities = "BSD-2-Clause"
LICENSE:${PN}-esprima = "BSD-2-Clause"
LICENSE:${PN}-estree-walker = "MIT"
LICENSE:${PN}-fast-deep-equal = "MIT"
LICENSE:${PN}-filelist-minimatch = "ISC"
LICENSE:${PN}-filelist = "Apache-2.0"
LICENSE:${PN}-fsrealpath = "ISC"
LICENSE:${PN}-glob-minimatch = "ISC"
LICENSE:${PN}-glob = "ISC"
LICENSE:${PN}-has-flag = "MIT"
LICENSE:${PN}-highlightjs = "BSD-3-Clause"
LICENSE:${PN}-immer = "MIT"
LICENSE:${PN}-inflight = "ISC"
LICENSE:${PN}-inherits = "ISC"
LICENSE:${PN}-is-reference = "MIT"
LICENSE:${PN}-jake-brace-expansion = "MIT"
LICENSE:${PN}-jake-minimatch = "ISC"
LICENSE:${PN}-jake = "Apache-2.0"
LICENSE:${PN}-js-yaml = "MIT"
LICENSE:${PN}-json-schema-traverse = "MIT"
LICENSE:${PN}-just-clone = "MIT"
LICENSE:${PN}-konva = "MIT"
LICENSE:${PN}-linkify-it = "MIT"
LICENSE:${PN}-magic-string = "MIT"
LICENSE:${PN}-magicast = "MIT"
LICENSE:${PN}-markdown-it = "MIT"
LICENSE:${PN}-mdurl = "MIT"
LICENSE:${PN}-mitt = "MIT"
LICENSE:${PN}-ms = "MIT"
LICENSE:${PN}-nanoid = "MIT"
LICENSE:${PN}-notyf = "MIT"
LICENSE:${PN}-once = "ISC"
LICENSE:${PN}-picocolors = "ISC"
LICENSE:${PN}-picomatch = "MIT"
LICENSE:${PN}-pinia = "MIT"
LICENSE:${PN}-postcss = "MIT"
LICENSE:${PN}-punycode = "MIT"
LICENSE:${PN}-punycodejs = "MIT"
LICENSE:${PN}-recast = "MIT"
LICENSE:${PN}-require-from-string = "MIT"
LICENSE:${PN}-source-map = "BSD-3-Clause"
LICENSE:${PN}-source-map-js = "BSD-3-Clause"
LICENSE:${PN}-splitpanes = "MIT"
LICENSE:${PN}-supports-color = "MIT"
LICENSE:${PN}-tiny-invariant = "MIT"
LICENSE:${PN}-to-fast-properties = "MIT"
LICENSE:${PN}-tslib = "0BSD"
LICENSE:${PN}-ucmicro = "MIT"
LICENSE:${PN}-uri-js = "BSD-2-Clause"
LICENSE:${PN}-vee-validate-type-fest = "MIT | CC0-1.0"
LICENSE:${PN}-vee-validate = "MIT"
LICENSE:${PN}-vue = "MIT"
LICENSE:${PN}-vue-class-component = "MIT"
LICENSE:${PN}-vue-demi = "MIT"
LICENSE:${PN}-vue-property-decorator = "MIT"
LICENSE:${PN}-vue-router = "MIT"
LICENSE:${PN}-vuetify = "MIT"
LICENSE:${PN}-wrappy = "ISC"

View File

@@ -0,0 +1,17 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI = "git://github.com/EVerest/everest-cmake.git;branch=main;protocol=https"
SRCREV = "e378100829014ad4c3a721a7aa1c02ef56736c61"
S = "${WORKDIR}/git"
do_install() {
install -d ${D}/usr/lib/cmake/everest-cmake
cp -a --no-preserve=ownership ${S}/*.cmake ${D}/usr/lib/cmake/everest-cmake/
cp -a --no-preserve=ownership ${S}/3rd_party ${D}/usr/lib/cmake/everest-cmake/
cp -a --no-preserve=ownership ${S}/assets ${D}/usr/lib/cmake/everest-cmake/
cp -a --no-preserve=ownership ${S}/golang-support ${D}/usr/lib/cmake/everest-cmake/
cp -a --no-preserve=ownership ${S}/protobuf-helpers ${D}/usr/lib/cmake/everest-cmake/
}

View File

@@ -0,0 +1,13 @@
[Unit]
Description=EVerest
Requires=mosquitto.service
After=mosquitto.service
ConditionFileNotEmpty=/etc/everest/config.yaml
[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/manager --conf /etc/everest/config.yaml
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,93 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
require everest-core_git.inc
SRC_URI:append = " file://everest.service"
do_compile[network] = "0"
inherit cmake pkgconfig systemd python3native
DEPENDS = " \
boost \
curl \
date \
evcli-native \
everest-cmake \
fmt \
ftxui \
json-schema-validator \
libcap \
libevent \
libnfc-nci \
libpcap \
libwebsockets \
mosquitto \
mqttc \
nlohmann-json \
openssl \
pugixml \
rapidyaml \
rsync-native \
sdbus-c++ \
sigslot \
json-rpc-cxx \
"
RDEPENDS:${PN} += "libevent openssl"
INSANE_SKIP:${PN} = "already-stripped useless-rpaths arch file-rdeps"
FILES:${PN} += "${libdir}/everest/* ${datadir}/everest/*"
EXTRA_OECMAKE += " \
-DDISABLE_EDM=ON \
-DNO_FETCH_CONTENT=ON \
-DEVEREST_ENABLE_RUN_SCRIPT_GENERATION=OFF \
-Deverest-core_INSTALL_EV_CLI_IN_PYTHON_VENV=OFF \
-Deverest-core_USE_PYTHON_VENV=OFF \
-DEV_SETUP_PYTHON_EXECUTABLE_USE_PYTHON_VENV=OFF \
-DPYTHON_MODULE_EXTENSION=.so \
-DPYBIND11_PYTHONLIBS_OVERWRITE=OFF \
-DEVEREST_INSTALL_ADMIN_PANEL=OFF \
-DLOG_INSTALL=ON \
-DEVEREST_SQLITE_INSTALL=ON \
-DFRAMEWORK_INSTALL=ON \
-DTIMER_INSTALL=ON \
-DEVSE_SECURITY_INSTALL=ON \
-DOCPP_INSTALL=ON \
"
# there are issues with pybind11 and the sstate cache
#
# CMake Error in lib/everest/framework/everestpy/src/everest/CMakeLists.txt:
# Imported target "pybind11_json" includes non-existent path
#
# INTERFACE_INCLUDE_DIRECTORIES can point outside of the build area
# when built by a different Yocto project and a shared state cache is used
# Option 1 - disable PY support
# EXTRA_OECMAKE:append = " -DEVEREST_ENABLE_PY_SUPPORT=OFF"
# Option 2 provide the location to cmake
EXTRA_OECMAKE:append = " -DPYBIND11_INTERFACE_INCLUDE_DIRECTORIES=${STAGING_INCDIR}/${PYTHON_DIR}"
SYSTEMD_SERVICE:${PN} = "everest.service"
PACKAGECONFIG ??= "applications python ${@bb.utils.filter('DISTRO_FEATURES', 'tpm2', d)}"
PACKAGECONFIG[admin-panel] = "-DEVEREST_ENABLE_ADMIN_PANEL_BACKEND=ON,-DEVEREST_ENABLE_ADMIN_PANEL_BACKEND=OFF,"
PACKAGECONFIG[applications] = "-DEVEREST_BUILD_APPLICATIONS=ON,-DEVEREST_BUILD_APPLICATIONS=OFF,"
PACKAGECONFIG[javascript] = "-DEVEREST_ENABLE_JS_SUPPORT=ON,-DEVEREST_ENABLE_JS_SUPPORT=OFF,nodejs-native"
PACKAGECONFIG[python] = "-DEVEREST_ENABLE_PY_SUPPORT=ON,-DEVEREST_ENABLE_PY_SUPPORT=OFF,python3-pybind11 python3-pybind11-json"
PACKAGECONFIG[tpm2] = "-DUSING_TPM2=ON,-DUSING_TPM2=OFF,"
do_install:append() {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/everest.service ${D}${systemd_system_unitdir}/
fi
}
OECMAKE_CXX_FLAGS += "-Wno-narrowing"

View File

@@ -0,0 +1,9 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
FILESEXTRAPATHS:prepend := "${EVEREST_CORE_PARENT_PATH}:"
SRC_URI = "file://${EVEREST_CORE_REPONAME};unpack=0 \
"
S = "${WORKDIR}/${EVEREST_CORE_REPONAME}"
B = "${WORKDIR}"

View File

@@ -0,0 +1,30 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI = "git://github.com/EVerest/everest-examples.git;branch=main;protocol=https"
SRCREV = "459ef979771cc93a7c00d53188f813449b1e3bd6"
S = "${WORKDIR}/git"
inherit cmake pkgconfig python3native
DEPENDS = " \
everest-core \
evcli-native \
"
INSANE_SKIP:${PN} = "already-stripped useless-rpaths arch file-rdeps"
INSANE_SKIP:${PN}-dev = "already-stripped useless-rpaths arch file-rdeps"
FILES:${PN} += "${datadir}/everest/*"
EXTRA_OECMAKE += " \
-DDISABLE_EDM=ON \
-Deverest-examples_USE_PYTHON_VENV=OFF \
"
do_install:append() {
# auto generated file that would conflict with the one created by everest-core
rm -f ${D}${datadir}/everest/version_information.txt
}

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# everest-framework moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,953 @@
{
"name": "everest-node-red-dependencies",
"version": "0.1.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "everest-node-red-dependencies",
"version": "0.1.0",
"dependencies": {
"node-red-contrib-ui-actions": "^0.1.8",
"node-red-contrib-ui-level": "^0.1.46",
"node-red-dashboard": "^3.2.3",
"node-red-node-ui-table": "^0.4.3"
},
"devDependencies": {}
},
"node_modules/@socket.io/component-emitter": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
},
"node_modules/@types/cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
},
"node_modules/@types/cors": {
"version": "2.8.13",
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz",
"integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/node": {
"version": "18.13.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz",
"integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg=="
},
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"dependencies": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/base64id": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
"integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
"engines": {
"node": "^4.5.0 || >= 5.9"
}
},
"node_modules/bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/compressible": {
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
"dependencies": {
"mime-db": ">= 1.43.0 < 2"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/compression": {
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
"integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
"dependencies": {
"accepts": "~1.3.5",
"bytes": "3.0.0",
"compressible": "~2.0.16",
"debug": "2.6.9",
"on-headers": "~1.0.2",
"safe-buffer": "5.1.2",
"vary": "~1.1.2"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/cookie": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"dependencies": {
"object-assign": "^4",
"vary": "^1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/engine.io": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.0.tgz",
"integrity": "sha512-OgxY1c/RuCSeO/rTr8DIFXx76IzUUft86R7/P7MMbbkuzeqJoTNw2lmeD91IyGz41QYleIIjWeMJGgug043sfQ==",
"dependencies": {
"@types/cookie": "^0.4.1",
"@types/cors": "^2.8.12",
"@types/node": ">=10.0.0",
"accepts": "~1.3.4",
"base64id": "2.0.0",
"cookie": "~0.4.1",
"cors": "~2.8.5",
"debug": "~4.3.1",
"engine.io-parser": "~5.0.3",
"ws": "~8.11.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/engine.io-parser": {
"version": "5.0.6",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
"integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==",
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/engine.io/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/engine.io/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/gridstack": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/gridstack/-/gridstack-0.6.4.tgz",
"integrity": "sha512-4ToCnneNg5Uw+ms3xHtPVvsNXdvwQhngdlyNgGkARwvooQu+gLL6xkwPqLU59TsZP/LVvofb2QhEuXyh/ocL8w==",
"dependencies": {
"jquery": "^1.8 || 2 || 3"
}
},
"node_modules/http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dependencies": {
"depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"toidentifier": "1.0.1"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/jquery": {
"version": "3.6.3",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz",
"integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg=="
},
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/node-red-contrib-ui-actions": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/node-red-contrib-ui-actions/-/node-red-contrib-ui-actions-0.1.8.tgz",
"integrity": "sha512-0ah9DwdEeURY/3w7HaXhTYfL9hGDhgBSjpQgVvAV/S8/xlDCEkLGL4isggPnd3rnQ/RsnqO1EQFrVJi/4smMWg=="
},
"node_modules/node-red-contrib-ui-level": {
"version": "0.1.46",
"resolved": "https://registry.npmjs.org/node-red-contrib-ui-level/-/node-red-contrib-ui-level-0.1.46.tgz",
"integrity": "sha512-vrZJNMM+YW5AM0C4/xJMGKDzz/fhHhihfnpWHj+u5mxu2ff5xj6fKp6BoYhIEVR2MbxHGfa9ji/vl39rsLYMMw=="
},
"node_modules/node-red-dashboard": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-3.3.1.tgz",
"integrity": "sha512-d7d6nWrM9On4N+ah3R26Jregp1gpJmQgtt7s3EeLHzfCi7WmH1qAVgJe5ucj/U8azr+zF0NXFWD779lIOX+vrQ==",
"dependencies": {
"compression": "^1.7.4",
"gridstack": "^0.6.4",
"serve-static": "^1.15.0",
"socket.io": "^4.5.4"
},
"engines": {
"node": ">=12"
}
},
"node_modules/node-red-node-ui-table": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.4.3.tgz",
"integrity": "sha512-vy8rPj31Z/U2NDlLPX1CSfyBrVJtteQfYuOMcpso76zDohJqKXZguCE26Kjn2mfbz0BSLT6ynoZQGazeGiSkCQ==",
"peerDependencies": {
"node-red-dashboard": ">2.16.0"
}
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dependencies": {
"ee-first": "1.1.1"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/on-headers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
"on-finished": "2.4.1",
"range-parser": "~1.2.1",
"statuses": "2.0.1"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/send/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/serve-static": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
"send": "0.18.0"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/socket.io": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.0.tgz",
"integrity": "sha512-b65bp6INPk/BMMrIgVvX12x3Q+NqlGqSlTuvKQWt0BUJ3Hyy3JangBl7fEoWZTXbOKlCqNPbQ6MbWgok/km28w==",
"dependencies": {
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.3.2",
"engine.io": "~6.4.0",
"socket.io-adapter": "~2.5.2",
"socket.io-parser": "~4.2.1"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/socket.io-adapter": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
"integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
"dependencies": {
"ws": "~8.11.0"
}
},
"node_modules/socket.io-parser": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz",
"integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==",
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/socket.io-parser/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/socket.io-parser/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/socket.io/node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/socket.io/node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/ws": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
"integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
}
},
"dependencies": {
"@socket.io/component-emitter": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
"integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
},
"@types/cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
},
"@types/cors": {
"version": "2.8.13",
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz",
"integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==",
"requires": {
"@types/node": "*"
}
},
"@types/node": {
"version": "18.13.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz",
"integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg=="
},
"accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"requires": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
}
},
"base64id": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
"integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog=="
},
"bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw=="
},
"compressible": {
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
"requires": {
"mime-db": ">= 1.43.0 < 2"
}
},
"compression": {
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
"integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
"requires": {
"accepts": "~1.3.5",
"bytes": "3.0.0",
"compressible": "~2.0.16",
"debug": "2.6.9",
"on-headers": "~1.0.2",
"safe-buffer": "5.1.2",
"vary": "~1.1.2"
}
},
"cookie": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
},
"cors": {
"version": "2.8.5",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
"integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"requires": {
"object-assign": "^4",
"vary": "^1"
}
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
},
"engine.io": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.0.tgz",
"integrity": "sha512-OgxY1c/RuCSeO/rTr8DIFXx76IzUUft86R7/P7MMbbkuzeqJoTNw2lmeD91IyGz41QYleIIjWeMJGgug043sfQ==",
"requires": {
"@types/cookie": "^0.4.1",
"@types/cors": "^2.8.12",
"@types/node": ">=10.0.0",
"accepts": "~1.3.4",
"base64id": "2.0.0",
"cookie": "~0.4.1",
"cors": "~2.8.5",
"debug": "~4.3.1",
"engine.io-parser": "~5.0.3",
"ws": "~8.11.0"
},
"dependencies": {
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"engine.io-parser": {
"version": "5.0.6",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
"integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw=="
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
},
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
},
"gridstack": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/gridstack/-/gridstack-0.6.4.tgz",
"integrity": "sha512-4ToCnneNg5Uw+ms3xHtPVvsNXdvwQhngdlyNgGkARwvooQu+gLL6xkwPqLU59TsZP/LVvofb2QhEuXyh/ocL8w==",
"requires": {
"jquery": "^1.8 || 2 || 3"
}
},
"http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"requires": {
"depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"toidentifier": "1.0.1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"jquery": {
"version": "3.6.3",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz",
"integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg=="
},
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
"mime-db": "1.52.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
},
"node-red-contrib-ui-actions": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/node-red-contrib-ui-actions/-/node-red-contrib-ui-actions-0.1.8.tgz",
"integrity": "sha512-0ah9DwdEeURY/3w7HaXhTYfL9hGDhgBSjpQgVvAV/S8/xlDCEkLGL4isggPnd3rnQ/RsnqO1EQFrVJi/4smMWg=="
},
"node-red-contrib-ui-level": {
"version": "0.1.46",
"resolved": "https://registry.npmjs.org/node-red-contrib-ui-level/-/node-red-contrib-ui-level-0.1.46.tgz",
"integrity": "sha512-vrZJNMM+YW5AM0C4/xJMGKDzz/fhHhihfnpWHj+u5mxu2ff5xj6fKp6BoYhIEVR2MbxHGfa9ji/vl39rsLYMMw=="
},
"node-red-dashboard": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/node-red-dashboard/-/node-red-dashboard-3.3.1.tgz",
"integrity": "sha512-d7d6nWrM9On4N+ah3R26Jregp1gpJmQgtt7s3EeLHzfCi7WmH1qAVgJe5ucj/U8azr+zF0NXFWD779lIOX+vrQ==",
"requires": {
"compression": "^1.7.4",
"gridstack": "^0.6.4",
"serve-static": "^1.15.0",
"socket.io": "^4.5.4"
}
},
"node-red-node-ui-table": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/node-red-node-ui-table/-/node-red-node-ui-table-0.4.3.tgz",
"integrity": "sha512-vy8rPj31Z/U2NDlLPX1CSfyBrVJtteQfYuOMcpso76zDohJqKXZguCE26Kjn2mfbz0BSLT6ynoZQGazeGiSkCQ==",
"requires": {}
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
},
"on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"requires": {
"ee-first": "1.1.1"
}
},
"on-headers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
},
"parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"requires": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
"on-finished": "2.4.1",
"range-parser": "~1.2.1",
"statuses": "2.0.1"
},
"dependencies": {
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"serve-static": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
"send": "0.18.0"
}
},
"setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"socket.io": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.0.tgz",
"integrity": "sha512-b65bp6INPk/BMMrIgVvX12x3Q+NqlGqSlTuvKQWt0BUJ3Hyy3JangBl7fEoWZTXbOKlCqNPbQ6MbWgok/km28w==",
"requires": {
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.3.2",
"engine.io": "~6.4.0",
"socket.io-adapter": "~2.5.2",
"socket.io-parser": "~4.2.1"
},
"dependencies": {
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"socket.io-adapter": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
"integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
"requires": {
"ws": "~8.11.0"
}
},
"socket.io-parser": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz",
"integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==",
"requires": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1"
},
"dependencies": {
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
"ms": "2.1.2"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
},
"ws": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
"integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
"requires": {}
}
}
}

View File

@@ -0,0 +1,13 @@
{
"name": "everest-node-red-dependencies",
"version": "0.1.0",
"private": true,
"scripts": {},
"dependencies": {
"node-red-dashboard": "^3.2.3",
"node-red-contrib-ui-actions": "^0.1.8",
"node-red-node-ui-table": "^0.4.3",
"node-red-contrib-ui-level": "^0.1.46"
},
"devDependencies": {}
}

View File

@@ -0,0 +1,143 @@
LICENSE = "Apache-2.0 & ISC & MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \
file://node_modules/@socket.io/component-emitter/LICENSE;md5=c22e1612ebc02ae74b51d7abefe6d1f2 \
file://node_modules/@types/cookie/LICENSE;md5=d4a904ca135bb7bc912156fee12726f0 \
file://node_modules/@types/cors/LICENSE;md5=d4a904ca135bb7bc912156fee12726f0 \
file://node_modules/@types/node/LICENSE;md5=d4a904ca135bb7bc912156fee12726f0 \
file://node_modules/accepts/LICENSE;md5=bf1f9ad1e2e1d507aef4883fff7103de \
file://node_modules/base64id/LICENSE;md5=abb57c73ecaa9ddaa151a4e424935b47 \
file://node_modules/bytes/LICENSE;md5=013e95467eddb048f19a6f5b42820f86 \
file://node_modules/compressible/LICENSE;md5=ba0b78039307836d62c2c53de4218eb2 \
file://node_modules/compression/LICENSE;md5=0afd201e48c7d095454eed4ac1184e40 \
file://node_modules/cookie/LICENSE;md5=bc85b43b6f963e8ab3f88e63628448ca \
file://node_modules/cors/LICENSE;md5=947eb5e695dade432a500b12c510de85 \
file://node_modules/debug/LICENSE;md5=ddd815a475e7338b0be7a14d8ee35a99 \
file://node_modules/depd/LICENSE;md5=ebc30494fd072dc98368da73e1821715 \
file://node_modules/destroy/LICENSE;md5=d5eb22cf6cc99e645b98b28ee3503ddf \
file://node_modules/ee-first/LICENSE;md5=c8d3a30332ecb31cfaf4c0a06da18f5c \
file://node_modules/encodeurl/LICENSE;md5=272621efa0ff4f18a73221e49ab60654 \
file://node_modules/engine.io-parser/LICENSE;md5=436a2c205caafa17c010702768e0bed0 \
file://node_modules/engine.io/LICENSE;md5=c9f272e8d85e84d214436bc09de14478 \
file://node_modules/engine.io/node_modules/debug/LICENSE;md5=d85a365580888e9ee0a01fb53e8e9bf0 \
file://node_modules/engine.io/node_modules/ms/license.md;md5=fd56fd5f1860961dfa92d313167c37a6 \
file://node_modules/escape-html/LICENSE;md5=f8746101546eeb9e4f6de64bb8bdf595 \
file://node_modules/etag/LICENSE;md5=6e8686b7b13dd7ac8733645a81842c4a \
file://node_modules/fresh/LICENSE;md5=373c2cf0978b37e434394a43b4cbbdb4 \
file://node_modules/gridstack/LICENSE;md5=83a7a20bae5e8fc4dc5518f9f5dffd92 \
file://node_modules/http-errors/LICENSE;md5=607209623abfcc77b9098f71a0ef52f9 \
file://node_modules/inherits/LICENSE;md5=5b2ef2247af6d355ae9d9f988092d470 \
file://node_modules/jquery/LICENSE.txt;md5=de877aa6d744cc160ff41c26a8e4811f \
file://node_modules/jquery/external/sizzle/LICENSE.txt;md5=18d9b3a646e7608b8951c4f6aa1bbf25 \
file://node_modules/mime-db/LICENSE;md5=175b28b58359f8b4a969c9ab7c828445 \
file://node_modules/mime-types/LICENSE;md5=bf1f9ad1e2e1d507aef4883fff7103de \
file://node_modules/mime/LICENSE;md5=8e8ea2ad138ce468f8570a0edbadea65 \
file://node_modules/ms/license.md;md5=fd56fd5f1860961dfa92d313167c37a6 \
file://node_modules/negotiator/LICENSE;md5=6417a862a5e35c17c904d9dda2cbd499 \
file://node_modules/node-red-contrib-ui-actions/LICENSE;md5=2161a7b0ac38df1def64302a3e1b6e25 \
file://node_modules/node-red-contrib-ui-level/LICENSE;md5=a8da2cf9fdb496f100632aef268f8d25 \
file://node_modules/node-red-dashboard/LICENSE;md5=088ce976a5d78ef059391f1ca042eb3d \
file://node_modules/node-red-node-ui-table/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
file://node_modules/object-assign/license;md5=a12ebca0510a773644101a99a867d210 \
file://node_modules/on-finished/LICENSE;md5=1b1f7f9cec194121fdf616b971df7a7b \
file://node_modules/on-headers/LICENSE;md5=c6e0ce1e688c5ff16db06b7259e9cd20 \
file://node_modules/parseurl/LICENSE;md5=e7842ed4f188e53e53c3e8d9c4807e89 \
file://node_modules/range-parser/LICENSE;md5=d4246fb961a4f121eef5ffca47f0b010 \
file://node_modules/safe-buffer/LICENSE;md5=badd5e91c737e7ffdf10b40c1f907761 \
file://node_modules/send/LICENSE;md5=5f1a8369a899b128aaa8a59d60d00b40 \
file://node_modules/send/node_modules/ms/license.md;md5=2b8bc52ae6b7ba58e1629deabd53986f \
file://node_modules/serve-static/LICENSE;md5=27b1707520b14d0bc890f4e75cd387b0 \
file://node_modules/setprototypeof/LICENSE;md5=4846f1626304c2c0f806a539bbc7d54a \
file://node_modules/socket.io-adapter/LICENSE;md5=afbe5b2f47d5cf306759fe2d435b5ee0 \
file://node_modules/socket.io-parser/LICENSE;md5=afbe5b2f47d5cf306759fe2d435b5ee0 \
file://node_modules/socket.io-parser/node_modules/debug/LICENSE;md5=d85a365580888e9ee0a01fb53e8e9bf0 \
file://node_modules/socket.io-parser/node_modules/ms/license.md;md5=fd56fd5f1860961dfa92d313167c37a6 \
file://node_modules/socket.io/LICENSE;md5=852d069fbb52f1d8ed1ac32fa4b9147c \
file://node_modules/socket.io/node_modules/debug/LICENSE;md5=d85a365580888e9ee0a01fb53e8e9bf0 \
file://node_modules/socket.io/node_modules/ms/license.md;md5=fd56fd5f1860961dfa92d313167c37a6 \
file://node_modules/statuses/LICENSE;md5=36e2bc837ce69a98cc33a9e140d457e5 \
file://node_modules/toidentifier/LICENSE;md5=1a261071a044d02eb6f2bb47f51a3502 \
file://node_modules/vary/LICENSE;md5=13babc4f212ce635d68da544339c962b \
file://node_modules/ws/LICENSE;md5=0678f4fff95e1b65145631a8e2608d44"
inherit npm
DEPENDS = "node-red"
SRC_URI = "file://package.json \
npmsw://${THISDIR}/${BPN}/everest-node-red-flows-npm-shrinkwrap.json \
file://flows.json \
"
S = "${WORKDIR}"
FILES:${PN} += "/home/root/.node-red/flows.json \
/home/root/.node-red/node_modules/*"
do_install() {
mkdir -p ${D}/home/root/.node-red/
cp ${S}/flows.json ${D}/home/root/.node-red/
cp -a --no-preserve=ownership ${S}/node_modules ${D}/home/root/.node-red/
rm -rf ${D}/home/root/.node-red/node_modules/.bin
}
INSANE_SKIP:${PN} = "already-stripped useless-rpaths arch file-rdeps staticdev"
EXCLUDE_FROM_SHLIBS = "1"
LICENSE:${PN} = "Apache-2.0"
LICENSE:${PN}-socketio-component-emitter = "MIT"
LICENSE:${PN}-types-cookie = "MIT"
LICENSE:${PN}-types-cors = "MIT"
LICENSE:${PN}-types-node = "MIT"
LICENSE:${PN}-accepts = "MIT"
LICENSE:${PN}-base64id = "MIT"
LICENSE:${PN}-bytes = "MIT"
LICENSE:${PN}-compressible = "MIT"
LICENSE:${PN}-compression = "MIT"
LICENSE:${PN}-cookie = "MIT"
LICENSE:${PN}-cors = "MIT"
LICENSE:${PN}-debug = "MIT"
LICENSE:${PN}-depd = "MIT"
LICENSE:${PN}-destroy = "MIT"
LICENSE:${PN}-ee-first = "MIT"
LICENSE:${PN}-encodeurl = "MIT"
LICENSE:${PN}-engineio-debug = "MIT"
LICENSE:${PN}-engineio-ms = "MIT"
LICENSE:${PN}-engineio = "MIT"
LICENSE:${PN}-engineio-parser = "MIT"
LICENSE:${PN}-escape-html = "MIT"
LICENSE:${PN}-etag = "MIT"
LICENSE:${PN}-fresh = "MIT"
LICENSE:${PN}-gridstack = "MIT"
LICENSE:${PN}-http-errors = "MIT"
LICENSE:${PN}-inherits = "ISC"
LICENSE:${PN}-jquery = "MIT"
LICENSE:${PN}-mime = "MIT"
LICENSE:${PN}-mime-db = "MIT"
LICENSE:${PN}-mime-types = "MIT"
LICENSE:${PN}-ms = "MIT"
LICENSE:${PN}-negotiator = "MIT"
LICENSE:${PN}-node-red-contrib-ui-actions = "MIT"
LICENSE:${PN}-node-red-contrib-ui-level = "MIT"
LICENSE:${PN}-node-red-dashboard = "Apache-2.0"
LICENSE:${PN}-node-red-node-ui-table = "Apache-2.0"
LICENSE:${PN}-object-assign = "MIT"
LICENSE:${PN}-on-finished = "MIT"
LICENSE:${PN}-on-headers = "MIT"
LICENSE:${PN}-parseurl = "MIT"
LICENSE:${PN}-range-parser = "MIT"
LICENSE:${PN}-safe-buffer = "MIT"
LICENSE:${PN}-send-ms = "MIT"
LICENSE:${PN}-send = "MIT"
LICENSE:${PN}-serve-static = "MIT"
LICENSE:${PN}-setprototypeof = "ISC"
LICENSE:${PN}-socketio-debug = "MIT"
LICENSE:${PN}-socketio-ms = "MIT"
LICENSE:${PN}-socketio = "MIT"
LICENSE:${PN}-socketio-adapter = "MIT"
LICENSE:${PN}-socketio-parser-debug = "MIT"
LICENSE:${PN}-socketio-parser-ms = "MIT"
LICENSE:${PN}-socketio-parser = "MIT"
LICENSE:${PN}-statuses = "MIT"
LICENSE:${PN}-toidentifier = "MIT"
LICENSE:${PN}-vary = "MIT"
LICENSE:${PN}-ws = "MIT"

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# everest-sqlite moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# libcbv2g moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# libevse-security moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# libfsm moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# libiso15118 moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# liblog moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,23 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI = "git://github.com/EVerest/linux_libnfc-nci.git;branch=everest;protocol=https \
"
inherit cmake
S = "${WORKDIR}/git"
SRCREV = "65276f9221cd2a50dbe4bc22e34879387b5800be"
DEPENDS = "\
everest-cmake \
"
EXTRA_OECMAKE += "-DDISABLE_EDM=ON"
# we need the configs from everest-core, so remove the default configs here
do_install:append() {
rm ${D}${sysconfdir}/everest/libnfc_config/libnfc-nci.conf
rm ${D}${sysconfdir}/everest/libnfc_config/libnfc-nxp.conf
}

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# libocpp moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# libslac moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,4 @@
LICENSE = "Apache-2.0"
# libtimer moved to EVerest, this recipe is kept for compatibility
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,27 @@
DESCRIPTION = "Python implementation of the ISO 15118-2 and -20 protocols"
HOMEPAGE = "https://github.com/SwitchEV/iso15118"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI = "git://github.com/EVerest/ext-switchev-iso15118.git;protocol=https;branch=everest"
SRCREV = "89db9d27db551801d45627f802e4c3a029ed29c2"
S = "${WORKDIR}/git"
inherit python_poetry_core
# NOTE (aw): the cryptography dependency might be to old
RDEPENDS:${PN} += " \
${PYTHON_PN}-environs \
${PYTHON_PN}-cryptography \
${PYTHON_PN}-pydantic \
${PYTHON_PN}-psutil \
${PYTHON_PN}-py4j \
${PYTHON_PN}-marshmallow \
${PYTHON_PN}-aiofile \
${PYTHON_PN}-netifaces \
"
# iso15118 ships shell scripts which use /bin/bash
RDEPENDS:${PN} += "bash"

View File

@@ -0,0 +1,27 @@
# Minimal CMake config for header-only json-rpc-cxx
# Define INTERFACE library target
add_library(json-rpc-cxx INTERFACE)
# Compute the include and library directories relative to this file.
get_filename_component(_JSONRPCCXX_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" REALPATH)
message(STATUS "Found json-rpc-cxx cmake config in ${CMAKE_CURRENT_LIST_DIR}, CMake dir is ${_JSONRPCCXX_CMAKEDIR}")
# We will get deployed in ${INSTALL_PREFIX}/lib/cmake/json-rpc-cxx
# and need to find ${INSTALL_PREFIX}/include.
get_filename_component(_JSONRPCCXX_INCLUDEDIR
"${_JSONRPCCXX_CMAKEDIR}/../../include/"
ABSOLUTE
)
message(STATUS "Setting json-rpc-cxx include dir to ${_JSONRPCCXX_INCLUDEDIR}")
# get_filename_component(_JSONRPCCXX_LIBDIR "${_JSONRPCCXX_CMAKEDIR}/../" ABSOLUTE)
# Add include directory
target_include_directories(json-rpc-cxx INTERFACE
${_JSONRPCCXX_INCLUDEDIR}
)
# Ensure dependency on nlohmann_json is pulled in
include(CMakeFindDependencyMacro)
find_dependency(nlohmann_json)

View File

@@ -0,0 +1,25 @@
SUMMARY = "JSON-RPC 2.0 framework for modern C++ (json-rpc-cxx)"
HOMEPAGE = "https://github.com/jsonrpcx/json-rpc-cxx"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=23722aabb609187e801a18422ee3abb7"
SRC_URI = "git://github.com/jsonrpcx/json-rpc-cxx.git;protocol=https;branch=master \
file://json-rpc-cxxConfig.cmake \
"
SRCREV = "a0e195b575d62cb07016321ac9cd7e1b9e048fe5"
inherit cmake
S = "${WORKDIR}/git"
RDEPENDS:${PN}-dev = "nlohmann-json-dev"
EXTRA_OECMAKE = "-DCOMPILE_TESTS=OFF -DCOMPILE_EXAMPLES=OFF -DCODE_COVERAGE=OFF"
do_install:append() {
install -d ${D}${libdir}/cmake/json-rpc-cxx
install -p -m 0644 ${WORKDIR}/json-rpc-cxxConfig.cmake \
${D}${libdir}/cmake/json-rpc-cxx/
}
FILES:${PN}-dev += "${libdir}/cmake/json-rpc-cxx"

View File

@@ -0,0 +1,77 @@
#!/usr/bin/env node
/// Usage: oe-npm-cache <cache-dir> <type> <key> <file-name>
/// <type> ... meta - metainformation about package
/// tgz - tarball
const process = require("node:process");
module.paths.unshift("@@libdir@@/node_modules/npm/node_modules");
const cacache = require('cacache')
const fs = require('fs')
// argv[0] is 'node', argv[1] is this script
const cache_dir = process.argv[2]
const type = process.argv[3]
const key = process.argv[4]
const file = process.argv[5]
const data = fs.readFileSync(file)
// metadata content is highly nodejs dependent; when cache entries are not
// found, place debug statements in 'make-fetch-happen/lib/cache/policy.js'
// (CachePolicy::satisfies())
const xlate = {
'meta': {
'key_prefix': 'make-fetch-happen:request-cache:',
'metadata': function() {
return {
time: Date.now(),
url: key,
reqHeaders: {
'accept': 'application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*',
},
resHeaders: {
"content-type": "application/json",
"status": 200,
},
options: {
compress: true,
}
};
},
},
'tgz': {
'key_prefix': 'make-fetch-happen:request-cache:',
'metadata': function() {
return {
time: Date.now(),
url: key,
reqHeaders: {
'accept': '*/*',
},
resHeaders: {
"content-type": "application/octet-stream",
"status": 200,
},
options: {
compress: true,
},
};
},
},
};
const info = xlate[type];
let opts = {}
if (info.metadata) {
opts['metadata'] = info.metadata();
}
cacache.put(cache_dir, info.key_prefix + key, data, opts)
.then(integrity => {
console.log(`Saved content of ${key} (${file}).`);
})

View File

@@ -0,0 +1,21 @@
DESCRIPTION = "OE helper for manipulating npm cache"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
SRC_URI = "\
file://oe-npm-cache \
"
inherit native
B = "${WORKDIR}/build"
do_configure() {
sed -e 's!@@libdir@@!${libdir}!g' < '${WORKDIR}/oe-npm-cache' > '${B}/oe-npm-cache'
}
do_install() {
install -D -p -m 0755 ${B}/oe-npm-cache ${D}${bindir}/oe-npm-cache
}
RDEPENDS:${PN} = "nodejs-native"

View File

@@ -0,0 +1,3 @@
#!/bin/sh
./cctest

View File

@@ -0,0 +1,185 @@
DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
HOMEPAGE = "http://nodejs.org"
LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0 & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=059ecf3a6f87111685e51b611b9563e5"
CVE_PRODUCT = "nodejs node.js"
DEPENDS = "openssl file-replacement-native"
DEPENDS:append:class-target = " qemu-native"
DEPENDS:append:class-native = " c-ares-native"
inherit pkgconfig python3native qemu ptest
COMPATIBLE_MACHINE:armv4 = "(!.*armv4).*"
COMPATIBLE_MACHINE:armv5 = "(!.*armv5).*"
COMPATIBLE_MACHINE:mips64 = "(!.*mips64).*"
COMPATIBLE_HOST:riscv64 = "null"
COMPATIBLE_HOST:riscv32 = "null"
COMPATIBLE_HOST:powerpc = "null"
SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
file://0004-v8-don-t-override-ARM-CFLAGS.patch \
file://big-endian.patch \
file://mips-less-memory.patch \
file://system-c-ares.patch \
file://0001-liftoff-Correct-function-signatures.patch \
file://0001-mips-Use-32bit-cast-for-operand-on-mips32.patch \
file://run-ptest \
"
SRC_URI:append:class-target = " \
file://0001-Using-native-binaries.patch \
"
SRC_URI:append:toolchain-clang:x86 = " \
file://libatomic.patch \
"
SRC_URI:append:toolchain-clang:powerpc64le = " \
file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \
"
SRC_URI[sha256sum] = "7249e2f0af943ec38599504f4b2a2bd31fb938787291b6ccca6c8badf01e3b56"
S = "${WORKDIR}/node-v${PV}"
# v8 errors out if you have set CCACHE
CCACHE = ""
def map_nodejs_arch(a, d):
import re
if re.match('i.86$', a): return 'ia32'
elif re.match('x86_64$', a): return 'x64'
elif re.match('aarch64$', a): return 'arm64'
elif re.match('(powerpc64|powerpc64le|ppc64le)$', a): return 'ppc64'
elif re.match('powerpc$', a): return 'ppc'
return a
ARCHFLAGS:arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)} \
${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-arm-fpu=neon', \
bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', '--with-arm-fpu=vfpv3-d16', \
bb.utils.contains('TUNE_FEATURES', 'vfpv3', '--with-arm-fpu=vfpv3', \
'--with-arm-fpu=vfp', d), d), d)}"
ARCHFLAGS:append:mips = " --v8-lite-mode"
ARCHFLAGS:append:mipsel = " --v8-lite-mode"
ARCHFLAGS ?= ""
PACKAGECONFIG ??= "ares brotli icu zlib"
PACKAGECONFIG[ares] = "--shared-cares,,c-ares"
PACKAGECONFIG[brotli] = "--shared-brotli,,brotli"
PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu"
PACKAGECONFIG[libuv] = "--shared-libuv,,libuv"
PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2"
PACKAGECONFIG[shared] = "--shared"
PACKAGECONFIG[zlib] = "--shared-zlib,,zlib"
# We don't want to cross-compile during target compile,
# and we need to use the right flags during host compile,
# too.
EXTRA_OEMAKE = "\
CC.host='${CC}' \
CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
CXX.host='${CXX}' \
CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
LDFLAGS.host='${LDFLAGS}' \
AR.host='${AR}' \
\
builddir_name=./ \
"
EXTRANATIVEPATH += "file-native"
python prune_sources() {
import shutil
shutil.rmtree(d.getVar('S') + '/deps/openssl')
if 'ares' in d.getVar('PACKAGECONFIG'):
shutil.rmtree(d.getVar('S') + '/deps/cares')
if 'brotli' in d.getVar('PACKAGECONFIG'):
shutil.rmtree(d.getVar('S') + '/deps/brotli')
if 'libuv' in d.getVar('PACKAGECONFIG'):
shutil.rmtree(d.getVar('S') + '/deps/uv')
if 'nghttp2' in d.getVar('PACKAGECONFIG'):
shutil.rmtree(d.getVar('S') + '/deps/nghttp2')
if 'zlib' in d.getVar('PACKAGECONFIG'):
shutil.rmtree(d.getVar('S') + '/deps/zlib')
}
do_unpack[postfuncs] += "prune_sources"
# V8's JIT infrastructure requires binaries such as mksnapshot and
# mkpeephole to be run in the host during the build. However, these
# binaries must have the same bit-width as the target (e.g. a x86_64
# host targeting ARMv6 needs to produce a 32-bit binary). Instead of
# depending on a third Yocto toolchain, we just build those binaries
# for the target and run them on the host with QEMU.
python do_create_v8_qemu_wrapper () {
"""Creates a small wrapper that invokes QEMU to run some target V8 binaries
on the host."""
qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'),
d.expand('${STAGING_DIR_HOST}${base_libdir}')]
qemu_cmd = qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'),
qemu_libdirs)
wrapper_path = d.expand('${B}/v8-qemu-wrapper.sh')
with open(wrapper_path, 'w') as wrapper_file:
wrapper_file.write("""#!/bin/sh
# This file has been generated automatically.
# It invokes QEMU to run binaries built for the target in the host during the
# build process.
%s "$@"
""" % qemu_cmd)
os.chmod(wrapper_path, 0o755)
}
do_create_v8_qemu_wrapper[dirs] = "${B}"
addtask create_v8_qemu_wrapper after do_configure before do_compile
LDFLAGS:append:x86 = " -latomic"
CROSS_FLAGS = "--cross-compiling"
CROSS_FLAGS:class-native = "--no-cross-compiling"
# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
do_configure () {
GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
# $TARGET_ARCH settings don't match --dest-cpu settings
python3 configure.py --verbose --prefix=${prefix} \
--shared-openssl \
--without-dtrace \
--without-etw \
--dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
--dest-os=linux \
--libdir=${baselib} \
${CROSS_FLAGS} \
${ARCHFLAGS} \
${PACKAGECONFIG_CONFARGS}
}
do_compile () {
install -D ${RECIPE_SYSROOT_NATIVE}/etc/ssl/openssl.cnf ${B}/deps/openssl/nodejs-openssl.cnf
install -D ${B}/v8-qemu-wrapper.sh ${B}/out/Release/v8-qemu-wrapper.sh
oe_runmake BUILDTYPE=Release
}
do_install () {
oe_runmake install DESTDIR=${D}
}
do_install_ptest () {
cp -r ${B}/out/Release/cctest ${D}${PTEST_PATH}/
cp -r ${B}/test ${D}${PTEST_PATH}
chown -R root:root ${D}${PTEST_PATH}
}
PACKAGES =+ "${PN}-npm"
FILES:${PN}-npm = "${nonarch_libdir}/node_modules ${bindir}/npm ${bindir}/npx ${bindir}/corepack"
RDEPENDS:${PN}-npm = "bash python3-core python3-shell python3-datetime \
python3-misc python3-multiprocessing"
PACKAGES =+ "${PN}-systemtap"
FILES:${PN}-systemtap = "${datadir}/systemtap"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,108 @@
SUMMARY = "OpenJDK - open-source reference implementation of the Java SE Platform"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3e0b59f8fac05c3c03d4a26bbda13f8f"
SRC_URI = "git://github.com/openjdk/jdk;branch=master;name=target-jdk;protocol=https \
https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.4.1%2B1/OpenJDK17U-jdk_x64_linux_hotspot_17.0.4.1_1.tar.gz;name=boot-jdk \
file://0001-Fix-CC-CXX-env-var-handling.patch \
"
SRC_URI[boot-jdk.sha256sum] = "5fbf8b62c44f10be2efab97c5f5dbf15b74fae31e451ec10abbc74e54a04ff44"
SRCREV_target-jdk = "dfacda488bfbe2e11e8d607a6d08527710286982"
PV = "17-ga"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
inherit autotools update-alternatives
OPENJDK_INSTALL_PREFIX = "/usr/lib/jvm/java-17-openjdk-${TARGET_ARCH}"
OPENJDK_BOOT_JDK_DIR = "${WORKDIR}/jdk-17.0.4.1+1"
mangle_environement_vars() {
unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
}
TARGET_CFLAGS +=" -Wno-nonnull -Wno-maybe-uninitialized"
do_configure () {
rm -rf ${B}
mkdir -p ${B}
cd ${B}
mangle_environement_vars
sh ${S}/configure \
--prefix=${OPENJDK_INSTALL_PREFIX} \
--enable-headless-only \
--with-jvm-variants=server \
--with-native-debug-symbols=none \
--with-debug-level=release \
--with-sysroot=${STAGING_DIR_TARGET} \
--openjdk-target=${TARGET_SYS} \
--with-boot-jdk=${OPENJDK_BOOT_JDK_DIR} \
--with-extra-cflags="${TARGET_CFLAGS}" \
--with-extra-ldflags="${TARGET_LDFLAGS}"
}
do_compile[network] = "1"
do_compile () {
mangle_environement_vars
# FIXME (aw): can we somehow use ${PARALLEL_MAKE} here?
# Unfortunately it's of the form '-j N', but we would need JOBS=N
make images
}
do_install () {
rm -rf ${B}/images/jdk/demo
install -d ${D}${OPENJDK_INSTALL_PREFIX}
cp -a --no-preserve=ownership ${B}/images/jdk/* ${D}${OPENJDK_INSTALL_PREFIX}/
}
ALTERNATIVE:${PN}-jre = "java"
ALTERNATIVE_TARGET[java] = "${OPENJDK_INSTALL_PREFIX}/bin/java"
PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
PACKAGE_BEFORE_PN = "${PN}-jre"
FILES:${PN}-src = "${OPENJDK_INSTALL_PREFIX}/lib/src.zip"
FILES:${PN}-doc = "${OPENJDK_INSTALL_PREFIX}/man/*"
FILES:${PN}-jre = "\
${OPENJDK_INSTALL_PREFIX}/bin/java \
${OPENJDK_INSTALL_PREFIX}/bin/jpackage \
${OPENJDK_INSTALL_PREFIX}/bin/keytool \
${OPENJDK_INSTALL_PREFIX}/conf/* \
${OPENJDK_INSTALL_PREFIX}/legal/* \
${OPENJDK_INSTALL_PREFIX}/lib/* \
${OPENJDK_INSTALL_PREFIX}/release \
"
FILES:${PN} = "\
${OPENJDK_INSTALL_PREFIX}/bin/* \
${OPENJDK_INSTALL_PREFIX}/jmods/* \
${OPENJDK_INSTALL_PREFIX}/include/* \
"
DEPENDS += "\
alsa-lib \
cups \
fontconfig \
libxi \
libx11 \
libxrender \
libxrandr \
libsm \
libxt \
libxtst \
libxext \
libice \
xorgproto \
"
DEPENDS += "\
make-native \
unzip-native \
zip-native \
"

View File

@@ -0,0 +1,16 @@
SUMMARY = "Sigslot, a signal-slot library"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8e23355f85e3828bb4ed474a2df2f9b9"
SRC_URI = "git://github.com/palacaze/sigslot.git;branch=master;protocol=https \
"
SRCREV = "b588b791b9cf7eb17ff0a74d8aebd4a61166c2e1"
S = "${WORKDIR}/git"
inherit cmake
# header only library
RDEPENDS:${PN}-dev = ""

View File

@@ -0,0 +1,3 @@
# add support for the DBSTAT virtual table
# this is being used by the libocpp AUTH_CACHE for OCPP 2.0.1
CFLAGS:append = " -DSQLITE_ENABLE_DBSTAT_VTAB"

View File

@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -0,0 +1,6 @@
meta-everest
============
BitBake layer for open embedded
All documentation and the issue tracking can be found in our main repository here: https://github.com/EVerest/everest

View File

@@ -0,0 +1 @@
intenionally left blank

View File

@@ -0,0 +1,5 @@
# EVerest variable defaults
EVEREST_VERSION_FILE ?= "${sysconfdir}/everest/everest_version"
EVEREST_RELEASE_FILE ?= "${sysconfdir}/everest/everest_release.json"
EVEREST_RELEASE_PACKAGES ?= ""

View File

@@ -0,0 +1,100 @@
# add everest release version information to the root file system
inherit everest
python do_everest_generate_version() {
import oe.packagedata
import os
from datetime import datetime
# obtain package name and version from important packages
# see license_image.bbclass license_create_manifest() for the approach
pkg_dic = {}
for pkg in everest_important_packages(d):
pkg_info = os.path.join(d.getVar('PKGDATA_DIR'),
'runtime-reverse', pkg)
pkg_name = os.path.basename(os.readlink(pkg_info))
info = oe.packagedata.read_pkgdatafile(pkg_info)
# items of interest: PN PV
pkg_dic[pkg_name] = {'name': info['PN'], 'version': info['PV']}
# JSON information to add to the version file
release = {}
release['channel'] = os.environ.get('EVEREST_UPDATE_CHANNEL', "unknown")
release['datetime'] = datetime.now().isoformat("T") + "Z"
version = None
try:
version_file = d.getVar('IMAGE_ROOTFS') + d.getVar('everest_VERSION_FILE')
with open(version_file, "r") as fp:
version = fp.read().strip()
except:
version = None
if version is None or version == "":
if "everest-core" in pkg_dic:
version = pkg_dic['everest-core']['version']
else:
bb.warn("Unable to determine everest release")
version = '<unknown>'
release['version'] = version
release['components'] = list(pkg_dic.values())
# write version file
everest_write_version(d, release)
}
def everest_important_packages(d):
from oe.rootfs import image_list_installed_packages
pkgs = image_list_installed_packages(d)
# recipes from recipes-core
important = [
"everest-admin-panel",
"everest-cmake",
"everest-core",
"everest-framework",
"everest-libmodbus",
"everest-node-red-flows",
"json-schema-validator",
"libcbv2g",
"libevse-security",
"libfsm",
"libiso15118",
"liblog",
"libnfc-nci",
"libocpp",
"libslac",
"libtimer",
]
additional = d.getVar('EVEREST_RELEASE_PACKAGES')
for pkg in additional.split(' '):
pkg = pkg.strip()
if pkg != "":
important.append(pkg)
return sorted([x for x in pkgs if x in important])
def everest_show_all_packages(d):
# can be added to ROOTFS_POSTPROCESS_COMMAND to show available packages for
# updating the important list in everest_important_packages()
from oe.rootfs import image_list_installed_packages
pkgs = image_list_installed_packages(d)
for p in sorted(pkgs):
bb.warn("Installed: %s" % str(p))
def everest_write_version(d, release_info):
import json
output = d.getVar('IMAGE_ROOTFS') + d.getVar('EVEREST_RELEASE_FILE')
with open(output, "w", encoding="utf-8") as json_file:
json.dump(release_info, json_file, indent=2)
# add processing to the end of the list
ROOTFS_POSTPROCESS_COMMAND:append = " do_everest_generate_version;"

View File

@@ -0,0 +1,38 @@
inherit pypi
inherit python3native python3targetconfig
PYPI_PACKAGE ?= "${@pypi_package(d)}"
# using debian mirror here, because of easy url
def pypi_wheel_uri(d):
package = d.getVar('PYPI_PACKAGE')
artifact_name = d.getVar('PYPI_WHEEL_NAME')
return 'https://pypi.debian.net/%s/%s' % (package, artifact_name)
PYPI_WHEEL_URI ?= "${@pypi_wheel_uri(d)};name=wheel"
SRC_URI:prepend = "${PYPI_WHEEL_URI} "
FILES:${PN} += "${libdir}/* ${libdir}/${PYTHON_DIR}/*"
FILES:${PN}-staticdev += "\
${PYTHON_SITEPACKAGES_DIR}/*.a \
"
FILES:${PN}-dev += "\
${datadir}/pkgconfig \
${libdir}/pkgconfig \
${PYTHON_SITEPACKAGES_DIR}/*.la \
"
DEPENDS:append = " python3-installer-native"
# pypa/installer option to control the bytecode compilation
INSTALL_WHEEL_COMPILE_BYTECODE ?= "--compile-bytecode=0"
pypi_wheel_do_install() {
nativepython3 -m installer ${INSTALL_WHEEL_COMPILE_BYTECODE} \
--interpreter "${USRBINPATH}/env python3" \
--destdir=${D} ${WORKDIR}/${PYPI_WHEEL_NAME}
}
EXPORT_FUNCTIONS do_install

View File

@@ -0,0 +1,19 @@
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "meta-everest"
BBFILE_PATTERN_meta-everest = "^${LAYERDIR}/"
LAYERDEPENDS_meta-everest = "core"
LAYERSERIES_COMPAT_meta-everest = "scarthgap"
# prefer version from recipes-backports
PREFERRED_VERSION_tpm2-openssl ??= "1.3%"
EVEREST_CORE_PATH = "${LAYERDIR}/../../.."
EVEREST_CORE_PARENT_PATH = "${EVEREST_CORE_PATH}/.."
EVEREST_CORE_REPONAME ?= "${@os.path.basename(os.path.abspath(d.getVar("EVEREST_CORE_PATH")))}"

View File

@@ -0,0 +1,25 @@
# everest_release.json
A JSON file containing a subset of installed packages can be added to your
image `/etc/everest/everest_release.json` by adding the following line to
your image recipes
```
inherit everest_version_file
```
`everest_version_file.bbclass` queries the installed packages and creates the
release JSON file by appending `do_everest_generate_version` to
the `ROOTFS_POSTPROCESS_COMMAND` variable.
`everest_version_file.bbclass` contains a list of packages to include.
This list can be extended via the `EVEREST_RELEASE_PACKAGES` variable as a
space separated list. For example in `local.conf`
```
everest_RELEASE_PACKAGES += "systemd tcpdump"
```
Note that packages need to be listed in `RDEPENDS`, or `IMAGE_INSTALL` to be
available for inclusion.

View File

@@ -0,0 +1,12 @@
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI = "git://git@github.com/asyncapi/cli.git;protocol=ssh;branch=master"
# v2.7.1
SRCREV = "2e5c6cd224eef9f8924c7d7ec961b37fd0123f21"
S = "${WORKDIR}/git"
inherit npm
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,24 @@
SUMMARY = "A date and time library based on C++11/14/17."
AUTHOR = "Howard Hinnant"
HOMEPAGE = "https://github.com/HowardHinnant/date.git"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b5d973344b3c7bbf7535f0e6e002d017"
SRC_URI = "git://github.com/HowardHinnant/date.git;branch=master;protocol=https \
"
inherit cmake
S = "${WORKDIR}/git"
PV = "3.0.4"
SRCREV = "f94b8f36c6180be0021876c4a397a054fe50c6f2"
EXTRA_OECMAKE += " \
-DBUILD_TZ_LIB=ON \
-DHAS_REMOTE_API=OFF \
-DUSE_AUTOLOAD=OFF \
-DUSE_SYSTEM_TZ_DB=ON \
-DBUILD_SHARED_LIBS=ON \
"

View File

@@ -0,0 +1,17 @@
SUMMARY = "open-source formatting library for C++"
DESCRIPTION = "{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams."
HOMEPAGE = "https://fmt.dev"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729"
SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https"
SRCREV = "407c905e45ad75fc29bf0f9bb7c5c2fd3475976f"
S = "${WORKDIR}/git"
inherit cmake
inherit ptest
EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DFMT_TEST=OFF -DFMT_DOC=OFF -DBUILD_SHARED_LIBS=ON -DFMT_INSTALL=ON -DFMT_SYSTEM_HEADERS=ON"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,16 @@
SUMMARY = "C++ functional terminal UI"
DESCRIPTION = "{ftxui}: A simple cross-platform C++ library for terminal based user interfaces!"
HOMEPAGE = "https://arthursonzogni.github.io/FTXUI"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=602507f167b627b30ce2cd7a24d50ea3"
SRC_URI = "git://github.com/ArthurSonzogni/FTXUI.git;branch=main;protocol=https"
SRCREV = "5cfed50702f52d51c1b189b5f97f8beaf5eaa2a6"
S = "${WORKDIR}/git"
inherit cmake
EXTRA_OECMAKE += " -DBUILD_SHARED_LIBS=ON "
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,17 @@
SUMMARY = "JSON schema validator for JSON for Modern C++"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c441d022da1b1663c70181a32225d006"
SRC_URI = "git://github.com/pboettch/json-schema-validator;branch=main;protocol=https \
"
SRCREV = "c780404a84dd9ba978ba26bc58d17cb43fa7bc80"
S = "${WORKDIR}/git"
DEPENDS += "nlohmann-json"
inherit cmake
EXTRA_OECMAKE = "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DJSON_VALIDATOR_BUILD_EXAMPLES=OFF -DJSON_VALIDATOR_BUILD_TESTS=OFF -DJSON_VALIDATOR_INSTALL=ON -DJSON_VALIDATOR_BUILD_SHARED_LIBS=ON"
TARGET_CFLAGS += "-Wno-narrowing"

View File

@@ -0,0 +1,70 @@
SUMMARY = "Canonical libwebsockets.org websocket library"
HOMEPAGE = "https://libwebsockets.org/"
LICENSE = "MIT & Zlib & BSD-3-Clause & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b5d391cc7929bcba238f9ba6805f7574"
DEPENDS = "zlib"
DEPENDS:append:class-native = " libcap-native"
S = "${WORKDIR}/git"
SRCREV = "85c6f7959fd40d8aaf7a50be3c9b75f08389a01c"
SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.5-stable"
UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
inherit cmake pkgconfig
PACKAGECONFIG ?= "libuv libcap client server http2 ssl streamcompress ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON,"
PACKAGECONFIG[examples] = "-DLWS_WITH_MINIMAL_EXAMPLES=ON,-DLWS_WITH_MINIMAL_EXAMPLES=OFF,"
PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF,"
PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF,"
PACKAGECONFIG[libcap] = "-DLWS_WITH_LIBCAP=ON,-DLWS_WITH_LIBCAP=OFF,libcap"
PACKAGECONFIG[libevent] = "-DLWS_WITH_LIBEVENT=ON,-DLWS_WITH_LIBEVENT=OFF,libevent"
PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl"
PACKAGECONFIG[static] = "-DLWS_WITH_STATIC=ON,-DLWS_WITH_STATIC=OFF -DLWS_LINK_TESTAPPS_DYNAMIC=ON,"
PACKAGECONFIG[streamcompress] = "-DLWS_WITH_HTTP_STREAM_COMPRESSION=ON,-DLWS_WITH_HTTP_STREAM_COMPRESSION=OFF,zlib"
PACKAGECONFIG[systemd] = "-DLWS_WITH_SDEVENT=ON,-DLWS_WITH_SDEVENT=OFF,systemd"
python __anonymous() {
if bb.utils.contains('PACKAGECONFIG', 'systemd', True, False, d) and not bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d):
bb.fatal("PACKAGECONFIG contains systemd but DISTRO_FEATURES doesn't")
}
EXTRA_OECMAKE += " \
-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
"
do_install:append() {
sed -i -e 's|${STAGING_LIBDIR}/libcrypto.so|crypto|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
sed -i -e 's|${STAGING_LIBDIR}/libssl.so|ssl|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
sed -i -e 's|${STAGING_LIBDIR}/libuv.so|uv|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
sed -i -e 's|${STAGING_INCDIR}||g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake \
${D}${libdir}/cmake/libwebsockets/libwebsockets-config.cmake
sed -i -e 's|${STAGING_LIBDIR}/||g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake \
${D}${libdir}/cmake/libwebsockets/libwebsockets-config.cmake
}
PACKAGES =+ "${PN}-testapps ${PN}-evlib-event ${PN}-evlib-uv ${PN}-evlib-ev ${PN}-evlib-sd"
FILES:${PN}-testapps += "${datadir}/libwebsockets-test-server/* ${bindir}/libwebsockets-test-*"
FILES:${PN}-evlib-event += "${libdir}/libwebsockets-evlib_event.so"
FILES:${PN}-evlib-uv += "${libdir}/libwebsockets-evlib_uv.so"
FILES:${PN}-evlib-ev += "${libdir}/libwebsockets-evlib_ev.so"
FILES:${PN}-evlib-sd += "${libdir}/libwebsockets-evlib_sd.so"
RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libevent', '${PN}-evlib-event', '', d)}"
RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libuv', '${PN}-evlib-uv', '', d)}"
RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libev', '${PN}-evlib-ev', '', d)}"
RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'systemd', '${PN}-evlib-sd', '', d)}"
RDEPENDS:${PN}-dev += " ${@bb.utils.contains('PACKAGECONFIG', 'static', '${PN}-staticdev', '', d)}"
# Avoid absolute paths to end up in the sysroot.
SSTATE_SCAN_FILES += "*.cmake"
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,30 @@
SUMMARY = "JSON for modern C++"
HOMEPAGE = "https://nlohmann.github.io/json/"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=3b489645de9825cca5beeb9a7e18b6eb"
CVE_PRODUCT = "json-for-modern-cpp"
SRC_URI = "git://github.com/nlohmann/json.git;nobranch=1;protocol=https \
"
SRCREV = "55f93686c01528224f448c19128836e7df245f72"
S = "${WORKDIR}/git"
inherit cmake
EXTRA_OECMAKE += "-DJSON_BuildTests=OFF -DJSON_MultipleHeaders=ON"
# nlohmann-json is a header only C++ library, so the main package will be empty.
RDEPENDS:${PN}-dev = ""
BBCLASSEXTEND = "native nativesdk"
# other packages commonly reference the file directly as "json.hpp"
# create symlink to allow this usage
do_install:append() {
ln -s nlohmann/json.hpp ${D}${includedir}/json.hpp
}

View File

@@ -0,0 +1,25 @@
SUMMARY = "Light-weight C++ XML Processing Library"
DESCRIPTION = "pugixml is a C++ XML processing library, which consists of a \
DOM-like interface with rich traversal/modification capabilities, \
an extremely fast XML parser which constructs the DOM tree from \
n XML file/buffer, and an XPath 1.0 implementation for complex \
data-driven tree queries."
HOMEPAGE = "https://pugixml.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=5dbb98bbc2e5051c26ce32508b4f703e"
SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
SRC_URI[sha256sum] = "655ade57fa703fb421c2eb9a0113b5064bddb145d415dd1f88c79353d90d511a"
UPSTREAM_CHECK_URI = "https://github.com/zeux/${BPN}/releases"
UPSTREAM_CHECK_REGEX = "releases/tag/v(?P<pver>\d+(\.\d+)+)"
inherit cmake
EXTRA_OECMAKE += "-DBUILD_PKGCONFIG=ON \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,15 @@
SUMMARY = "aiofile: Asynchronous file operations."
HOMEPAGE = "http://github.com/mosquito/aiofile"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENCE;md5=d8d1d59c60e60e8627fcd1c350a5c904"
SRC_URI[sha256sum] = "a8f9dec17282b3583337c4ef2d1a67f33072ab80dd03608041ed9e71b88dc521"
PYPI_PACKAGE = "aiofile"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-caio \
"

View File

@@ -0,0 +1,13 @@
SUMMARY = "caio: Asynchronous file IO for Linux MacOS or Windows."
HOMEPAGE = "https://github.com/mosquito/caio"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI[sha256sum] = "d2be553738dd793f8a01a60316f2c5284fbf152219241c0c67ca05f650a37a37"
PYPI_PACKAGE = "caio"
inherit pypi setuptools3
RDEPENDS:${PN} += "python3-multiprocessing"

View File

@@ -0,0 +1,15 @@
SUMMARY = "environs: simplified environment variable parsing"
HOMEPAGE = "https://github.com/sloria/environs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a49f11890d809ccbf7d326a2df842aaf"
SRC_URI[md5sum] = "7df5cb194ff30a004e1f03d9b4fdbee6"
PYPI_PACKAGE = "environs"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-python-dotenv \
"

View File

@@ -0,0 +1,15 @@
SUMMARY = "marshmallow: A lightweight library for converting complex datatypes to and from native Python datatypes."
HOMEPAGE = "https://github.com/marshmallow-code/marshmallow"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5bccd400dedfa74364481e56aacc0b4a"
SRC_URI[sha256sum] = "5d2371bbe42000f2b3fb5eaa065224df7d8f8597bc19a1bbfa5bfe7fba8da889"
PYPI_PACKAGE = "marshmallow"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
${PYTHON_PN}-packaging \
"

View File

@@ -0,0 +1,11 @@
SUMMARY = "netifaces: Portable network interface information."
HOMEPAGE = "https://github.com/al45tair/netifaces"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e4677613c25bf3673bfee98c0cc52202"
SRC_URI[sha256sum] = "043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32"
PYPI_PACKAGE = "netifaces"
inherit pypi setuptools3

View File

@@ -0,0 +1,11 @@
SUMMARY = "packaging: Core utilities for Python packages"
HOMEPAGE = "https://github.com/pypa/packaging"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91"
SRC_URI[sha256sum] = "dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"
PYPI_PACKAGE = "packaging"
inherit pypi setuptools3

Some files were not shown because too many files have changed in this diff Show More