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