1DESCRIPTION = "SDK type target for building a standalone tarball containing python3, chrpath, make, git and tar. The \ 2 tarball can be used to run bitbake builds on systems which don't meet the usual version requirements." 3SUMMARY = "Standalone tarball for running builds on systems with inadequate software" 4LICENSE = "MIT" 5 6TOOLCHAIN_TARGET_TASK ?= "" 7 8TOOLCHAIN_HOST_TASK ?= "\ 9 nativesdk-sdk-provides-dummy \ 10 nativesdk-python3 \ 11 nativesdk-python3-git \ 12 nativesdk-python3-jinja2 \ 13 nativesdk-python3-testtools \ 14 nativesdk-python3-pip \ 15 nativesdk-python3-setuptools \ 16 nativesdk-python3-subunit \ 17 nativesdk-python3-pyyaml \ 18 nativesdk-python3-websockets \ 19 nativesdk-ncurses-terminfo-base \ 20 nativesdk-chrpath \ 21 nativesdk-tar \ 22 nativesdk-buildtools-perl-dummy \ 23 nativesdk-git \ 24 nativesdk-git-perltools \ 25 nativesdk-pigz \ 26 nativesdk-make \ 27 nativesdk-wget \ 28 nativesdk-ca-certificates \ 29 nativesdk-texinfo \ 30 nativesdk-libnss-nis \ 31 nativesdk-rpcsvc-proto \ 32 nativesdk-patch \ 33 nativesdk-mtools \ 34 nativesdk-zstd \ 35 nativesdk-lz4 \ 36 nativesdk-libacl \ 37 " 38 39MULTIMACH_TARGET_SYS = "${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}" 40PACKAGE_ARCH = "${SDK_ARCH}_${SDK_OS}" 41PACKAGE_ARCHS = "" 42TARGET_ARCH = "none" 43TARGET_OS = "none" 44 45SDK_PACKAGE_ARCHS += "buildtools-dummy-${SDKPKGSUFFIX}" 46 47TOOLCHAIN_OUTPUTNAME ?= "${SDK_ARCH}-buildtools-nativesdk-standalone-${DISTRO_VERSION}" 48 49SDK_TITLE = "Build tools" 50 51RDEPENDS = "${TOOLCHAIN_HOST_TASK}" 52 53EXCLUDE_FROM_WORLD = "1" 54 55inherit populate_sdk 56inherit toolchain-scripts-base 57inherit nopackages 58 59deltask install 60deltask populate_sysroot 61 62do_populate_sdk[stamp-extra-info] = "${PACKAGE_ARCH}" 63 64REAL_MULTIMACH_TARGET_SYS = "none" 65 66create_sdk_files:append () { 67 rm -f ${SDK_OUTPUT}/${SDKPATH}/site-config-* 68 rm -f ${SDK_OUTPUT}/${SDKPATH}/environment-setup-* 69 rm -f ${SDK_OUTPUT}/${SDKPATH}/version-* 70 71 # Generate new (mini) sdk-environment-setup file 72 script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-${SDK_SYS}} 73 touch $script 74 echo 'export PATH="${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${sbindir_nativesdk}:${SDKPATHNATIVE}${base_bindir_nativesdk}:${SDKPATHNATIVE}${base_sbindir_nativesdk}:$PATH"' >> $script 75 echo 'export OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script 76 if [ -e "${SDK_OUTPUT}${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt" ]; then 77 echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script 78 echo 'export SSL_CERT_FILE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script 79 echo 'export REQUESTS_CA_BUNDLE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script 80 echo 'export CURL_CA_BUNDLE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script 81 fi 82 echo 'HOST_PKG_PATH=$(command -p pkg-config --variable=pc_path pkg-config 2>/dev/null)' >>$script 83 echo 'export PKG_CONFIG_LIBDIR=${SDKPATHNATIVE}/${libdir}/pkgconfig:${SDKPATHNATIVE}/${datadir}/pkgconfig:${HOST_PKG_PATH:-/usr/lib/pkgconfig:/usr/share/pkgconfig}' >>$script 84 echo 'unset HOST_PKG_PATH' 85 86 toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS} 87 88 cat >> $script <<EOF 89if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then 90 for envfile in \$OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do 91 . \$envfile 92 done 93fi 94# We have to unset this else it can confuse oe-selftest and other tools 95# which may also use the overlapping namespace. 96unset OECORE_NATIVE_SYSROOT 97EOF 98 99 if [ "${SDKMACHINE}" = "i686" ]; then 100 echo 'export NO32LIBS="0"' >>$script 101 echo 'echo "$BB_ENV_PASSTHROUGH_ADDITIONS" | grep -q "NO32LIBS"' >>$script 102 echo '[ $? != 0 ] && export BB_ENV_PASSTHROUGH_ADDITIONS="NO32LIBS $BB_ENV_PASSTHROUGH_ADDITIONS"' >>$script 103 fi 104} 105 106# buildtools-tarball doesn't need config site 107TOOLCHAIN_NEED_CONFIGSITE_CACHE = "" 108 109# The recipe doesn't need any default deps 110INHIBIT_DEFAULT_DEPS = "1" 111 112# Directory in testsdk that contains testcases 113TESTSDK_CASES = "buildtools-cases" 114 115python do_testsdk() { 116 import oeqa.sdk.testsdk 117 testsdk = oeqa.sdk.testsdk.TestSDK() 118 119 cases_path = os.path.join(os.path.abspath(os.path.dirname(oeqa.sdk.testsdk.__file__)), d.getVar("TESTSDK_CASES")) 120 testsdk.context_executor_class.default_cases = cases_path 121 122 testsdk.run(d) 123} 124addtask testsdk 125do_testsdk[nostamp] = "1" 126do_testsdk[network] = "1" 127do_testsdk[depends] += "xz-native:do_populate_sysroot" 128