blob: 92fbda335db2cdff30848fb78280eadae656768a [file] [log] [blame]
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001DESCRIPTION = "SDK type target for building a standalone tarball containing python3, chrpath, make, git and tar. The \
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002 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"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05005
6TOOLCHAIN_TARGET_TASK ?= ""
7
8TOOLCHAIN_HOST_TASK ?= "\
Andrew Geisslerc9f78652020-09-18 14:11:35 -05009 nativesdk-sdk-provides-dummy \
Patrick Williams45852732022-04-02 08:58:32 -050010 nativesdk-python3 \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060011 nativesdk-python3-git \
Andrew Geisslerc3d88e42020-10-02 09:45:00 -050012 nativesdk-python3-jinja2 \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013 nativesdk-python3-testtools \
Patrick Williams2f814a62024-04-16 16:28:03 -050014 nativesdk-python3-pip \
15 nativesdk-python3-setuptools \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080016 nativesdk-python3-subunit \
Patrick Williams45852732022-04-02 08:58:32 -050017 nativesdk-python3-pyyaml \
Patrick Williams44b3caf2024-04-12 16:51:14 -050018 nativesdk-python3-websockets \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050019 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 \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050029 nativesdk-texinfo \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080030 nativesdk-libnss-nis \
31 nativesdk-rpcsvc-proto \
Andrew Geissler82c905d2020-04-13 13:39:40 -050032 nativesdk-patch \
33 nativesdk-mtools \
Andrew Geissler5f350902021-07-23 13:09:54 -040034 nativesdk-zstd \
35 nativesdk-lz4 \
Andrew Geissler5082cc72023-09-11 08:41:39 -040036 nativesdk-libacl \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050037 "
38
Patrick Williamsc0f7c042017-02-23 20:41:17 -060039MULTIMACH_TARGET_SYS = "${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}"
40PACKAGE_ARCH = "${SDK_ARCH}_${SDK_OS}"
41PACKAGE_ARCHS = ""
42TARGET_ARCH = "none"
43TARGET_OS = "none"
44
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050045SDK_PACKAGE_ARCHS += "buildtools-dummy-${SDKPKGSUFFIX}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050046
Patrick Williamsc0f7c042017-02-23 20:41:17 -060047TOOLCHAIN_OUTPUTNAME ?= "${SDK_ARCH}-buildtools-nativesdk-standalone-${DISTRO_VERSION}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050048
49SDK_TITLE = "Build tools"
50
51RDEPENDS = "${TOOLCHAIN_HOST_TASK}"
52
53EXCLUDE_FROM_WORLD = "1"
54
Patrick Williamsc124f4f2015-09-15 14:41:29 -050055inherit populate_sdk
Patrick Williamsc0f7c042017-02-23 20:41:17 -060056inherit toolchain-scripts-base
57inherit nopackages
58
59deltask install
Patrick Williamsc0f7c042017-02-23 20:41:17 -060060deltask populate_sysroot
61
62do_populate_sdk[stamp-extra-info] = "${PACKAGE_ARCH}"
63
64REAL_MULTIMACH_TARGET_SYS = "none"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050065
Patrick Williams213cb262021-08-07 19:21:33 -050066create_sdk_files:append () {
Patrick Williamsc124f4f2015-09-15 14:41:29 -050067 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
Andrew Geisslerfc113ea2023-03-31 09:59:46 -050074 echo 'export PATH="${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${sbindir_nativesdk}:${SDKPATHNATIVE}${base_bindir_nativesdk}:${SDKPATHNATIVE}${base_sbindir_nativesdk}:$PATH"' >> $script
Andrew Geissler635e0e42020-08-21 15:58:33 -050075 echo 'export OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script
Patrick Williams03907ee2022-05-01 06:28:52 -050076 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
Patrick Williams2390b1b2022-11-03 13:47:49 -050079 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
Patrick Williams03907ee2022-05-01 06:28:52 -050081 fi
Andrew Geisslerc5535c92023-01-27 16:10:19 -060082 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'
Andrew Geissler635e0e42020-08-21 15:58:33 -050085
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
Andrew Geisslerc3d88e42020-10-02 09:45:00 -050094# 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
Andrew Geissler635e0e42020-08-21 15:58:33 -050097EOF
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050098
99 if [ "${SDKMACHINE}" = "i686" ]; then
100 echo 'export NO32LIBS="0"' >>$script
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000101 echo 'echo "$BB_ENV_PASSTHROUGH_ADDITIONS" | grep -q "NO32LIBS"' >>$script
102 echo '[ $? != 0 ] && export BB_ENV_PASSTHROUGH_ADDITIONS="NO32LIBS $BB_ENV_PASSTHROUGH_ADDITIONS"' >>$script
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500103 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500104}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500105
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"
Patrick Williams0ca19cc2021-08-16 14:03:13 -0500111
Andrew Geissler9aee5002022-03-30 16:27:02 +0000112# Directory in testsdk that contains testcases
113TESTSDK_CASES = "buildtools-cases"
114
Patrick Williams0ca19cc2021-08-16 14:03:13 -0500115python do_testsdk() {
116 import oeqa.sdk.testsdk
117 testsdk = oeqa.sdk.testsdk.TestSDK()
118
Andrew Geissler9aee5002022-03-30 16:27:02 +0000119 cases_path = os.path.join(os.path.abspath(os.path.dirname(oeqa.sdk.testsdk.__file__)), d.getVar("TESTSDK_CASES"))
Patrick Williams0ca19cc2021-08-16 14:03:13 -0500120 testsdk.context_executor_class.default_cases = cases_path
121
122 testsdk.run(d)
123}
124addtask testsdk
125do_testsdk[nostamp] = "1"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000126do_testsdk[network] = "1"
Patrick Williams0ca19cc2021-08-16 14:03:13 -0500127do_testsdk[depends] += "xz-native:do_populate_sysroot"