diff options
Diffstat (limited to 'yocto-poky/meta/recipes-core/meta')
5 files changed, 140 insertions, 39 deletions
diff --git a/yocto-poky/meta/recipes-core/meta/buildtools-tarball.bb b/yocto-poky/meta/recipes-core/meta/buildtools-tarball.bb index 840434ccd..e9578cac0 100644 --- a/yocto-poky/meta/recipes-core/meta/buildtools-tarball.bb +++ b/yocto-poky/meta/recipes-core/meta/buildtools-tarball.bb @@ -23,9 +23,10 @@ TOOLCHAIN_HOST_TASK ?= "\ nativesdk-make \ nativesdk-wget \ nativesdk-ca-certificates \ + nativesdk-texinfo \ " -SDK_PACKAGE_ARCHS =+ "buildtools-dummy-${SDKPKGSUFFIX}" +SDK_PACKAGE_ARCHS += "buildtools-dummy-${SDKPKGSUFFIX}" TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-buildtools-nativesdk-standalone-${DISTRO_VERSION}" @@ -56,4 +57,16 @@ create_sdk_files_append () { toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS} echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script + + if [ "${SDKMACHINE}" = "i686" ]; then + echo 'export NO32LIBS="0"' >>$script + echo 'echo "$BB_ENV_EXTRAWHITE" | grep -q "NO32LIBS"' >>$script + echo '[ $? != 0 ] && export BB_ENV_EXTRAWHITE="NO32LIBS $BB_ENV_EXTRAWHITE"' >>$script + fi } + +# buildtools-tarball doesn't need config site +TOOLCHAIN_NEED_CONFIGSITE_CACHE = "" + +# The recipe doesn't need any default deps +INHIBIT_DEFAULT_DEPS = "1" diff --git a/yocto-poky/meta/recipes-core/meta/meta-world-pkgdata.bb b/yocto-poky/meta/recipes-core/meta/meta-world-pkgdata.bb new file mode 100644 index 000000000..3c5db5001 --- /dev/null +++ b/yocto-poky/meta/recipes-core/meta/meta-world-pkgdata.bb @@ -0,0 +1,50 @@ +SUMMARY = "Pulls in pkgdata for world" +LICENSE = "MIT" +INHIBIT_DEFAULT_DEPS = "1" + +addtask do_allpackagedata before do_build +do_allpackagedata() { + : +} +do_allpackagedata[recrdeptask] = "do_packagedata do_allpackagedata" +do_allpackagedata[noexec] = "1" + +WORLD_PKGDATADIR = "${D}/world-pkgdata" + +addtask do_collect_packagedata after do_allpackagedata +SSTATETASKS += "do_collect_packagedata" +do_collect_packagedata[sstate-inputdirs] = "${WORLD_PKGDATADIR}" +do_collect_packagedata[sstate-outputdirs] = "${STAGING_DIR_HOST}/world-pkgdata" + +python do_collect_packagedata() { + import oe.copy_buildsystem + outdir = os.path.join(d.getVar('WORLD_PKGDATADIR', True)) + bb.utils.mkdirhier(outdir) + sigfile = os.path.join(outdir, 'locked-sigs-pkgdata.inc') + oe.copy_buildsystem.generate_locked_sigs(sigfile, d) +} + +do_fetch[noexec] = "1" +do_unpack[noexec] = "1" +do_patch[noexec] = "1" +do_configure[noexec] = "1" +do_compile[noexec] = "1" +do_install[noexec] = "1" + +do_configure[deptask] = "" + +WORLD_PKGDATA_EXCLUDE ?= "" + +python calculate_extra_depends() { + exclude = '${WORLD_PKGDATA_EXCLUDE}'.split() + for p in world_target: + if p == self_pn: + continue + + if p in exclude: + continue + + deps.append(p) +} + +PACKAGES = "" diff --git a/yocto-poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb b/yocto-poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb index 904173489..2b9611160 100644 --- a/yocto-poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb +++ b/yocto-poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda inherit allarch -PR = "r1" +PR = "r2" python() { # Put the package somewhere separate to ensure it's never used except @@ -20,7 +20,8 @@ PERLPACKAGES = "nativesdk-perl \ ALLOW_EMPTY_${PN} = "1" python populate_packages_prepend() { - d.appendVar('RPROVIDES_${PN}', '${PERLPACKAGES}') - d.appendVar('RCONFLICTS_${PN}', '${PERLPACKAGES}') + d.appendVar(d.expand('RPROVIDES_${PN}'), '${PERLPACKAGES}') + d.appendVar(d.expand('RCONFLICTS_${PN}'), '${PERLPACKAGES}') + d.appendVar(d.expand('RREPLACES_${PN}'), '${PERLPACKAGES}') } diff --git a/yocto-poky/meta/recipes-core/meta/signing-keys.bb b/yocto-poky/meta/recipes-core/meta/signing-keys.bb index cc401f3b6..e843301b2 100644 --- a/yocto-poky/meta/recipes-core/meta/signing-keys.bb +++ b/yocto-poky/meta/recipes-core/meta/signing-keys.bb @@ -3,43 +3,75 @@ DESCRIPTION = "Make public keys of the signing keys available" LICENSE = "MIT" -PACKAGES = "" - -do_fetch[noexec] = "1" -do_unpack[noexec] = "1" -do_patch[noexec] = "1" -do_configure[noexec] = "1" -do_compile[noexec] = "1" -do_install[noexec] = "1" -do_package[noexec] = "1" -do_packagedata[noexec] = "1" -do_package_write_ipk[noexec] = "1" -do_package_write_rpm[noexec] = "1" -do_package_write_deb[noexec] = "1" -do_populate_sysroot[noexec] = "1" +LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + + +inherit allarch deploy EXCLUDE_FROM_WORLD = "1" +INHIBIT_DEFAULT_DEPS = "1" + +PACKAGES =+ "${PN}-ipk ${PN}-rpm ${PN}-packagefeed" + +FILES_${PN}-rpm = "${sysconfdir}/pki/rpm-gpg" +FILES_${PN}-ipk = "${sysconfdir}/pki/ipk-gpg" +FILES_${PN}-packagefeed = "${sysconfdir}/pki/packagefeed-gpg" + +python do_get_public_keys () { + from oe.gpg_sign import get_signer -def export_gpg_pubkey(d, keyid, path): - import bb - gpg_bin = d.getVar('GPG_BIN', True) or \ - bb.utils.which(os.getenv('PATH'), "gpg") - cmd = '%s --batch --yes --export --armor -o %s %s' % \ - (gpg_bin, path, keyid) - status, output = oe.utils.getstatusoutput(cmd) - if status: - raise bb.build.FuncFailed('Failed to export gpg public key (%s): %s' % - (keyid, output)) - -python do_export_public_keys () { if d.getVar("RPM_SIGN_PACKAGES", True): # Export public key of the rpm signing key - export_gpg_pubkey(d, d.getVar("RPM_GPG_NAME", True), - d.getVar('RPM_GPG_PUBKEY', True)) + signer = get_signer(d, d.getVar('RPM_GPG_BACKEND', True)) + signer.export_pubkey(os.path.join(d.expand('${B}'), 'rpm-key'), + d.getVar('RPM_GPG_NAME', True)) + + if d.getVar("IPK_SIGN_PACKAGES", True): + # Export public key of the ipk signing key + signer = get_signer(d, d.getVar('IPK_GPG_BACKEND', True)) + signer.export_pubkey(os.path.join(d.expand('${B}'), 'ipk-key'), + d.getVar('IPK_GPG_NAME', True)) if d.getVar('PACKAGE_FEED_SIGN', True) == '1': # Export public key of the feed signing key - export_gpg_pubkey(d, d.getVar("PACKAGE_FEED_GPG_NAME", True), - d.getVar('PACKAGE_FEED_GPG_PUBKEY', True)) + signer = get_signer(d, d.getVar('PACKAGE_FEED_GPG_BACKEND', True)) + signer.export_pubkey(os.path.join(d.expand('${B}'), 'pf-key'), + d.getVar('PACKAGE_FEED_GPG_NAME', True)) +} +do_get_public_keys[cleandirs] = "${B}" +addtask get_public_keys before do_install + +do_install () { + if [ -f "${B}/rpm-key" ]; then + install -D -m 0644 "${B}/rpm-key" "${D}${sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-${DISTRO_VERSION}" + fi + if [ -f "${B}/ipk-key" ]; then + install -D -m 0644 "${B}/ipk-key" "${D}${sysconfdir}/pki/ipk-gpg/IPK-GPG-KEY-${DISTRO_VERSION}" + fi + if [ -f "${B}/pf-key" ]; then + install -D -m 0644 "${B}/pf-key" "${D}${sysconfdir}/pki/packagefeed-gpg/PACKAGEFEED-GPG-KEY-${DISTRO_VERSION}" + fi +} + +sysroot_stage_all_append () { + sysroot_stage_dir ${D}${sysconfdir}/pki ${SYSROOT_DESTDIR}${sysconfdir}/pki +} + +do_deploy () { + if [ -f "${B}/rpm-key" ]; then + install -D -m 0644 "${B}/rpm-key" "${DEPLOYDIR}/RPM-GPG-KEY-${DISTRO_VERSION}" + fi + if [ -f "${B}/ipk-key" ]; then + install -D -m 0644 "${B}/ipk-key" "${DEPLOYDIR}/IPK-GPG-KEY-${DISTRO_VERSION}" + fi + if [ -f "${B}/pf-key" ]; then + install -D -m 0644 "${B}/pf-key" "${DEPLOYDIR}/PACKAGEFEED-GPG-KEY-${DISTRO_VERSION}" + fi } -addtask do_export_public_keys before do_build +do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_RPM}" +# cleandirs should possibly be in deploy.bbclass but we need it +do_deploy[cleandirs] = "${DEPLOYDIR}" +# clear stamp-extra-info since MACHINE is normally put there by deploy.bbclass +do_deploy[stamp-extra-info] = "" +addtask deploy after do_get_public_keys diff --git a/yocto-poky/meta/recipes-core/meta/uninative-tarball.bb b/yocto-poky/meta/recipes-core/meta/uninative-tarball.bb index 21f3bd985..a983e42c6 100644 --- a/yocto-poky/meta/recipes-core/meta/uninative-tarball.bb +++ b/yocto-poky/meta/recipes-core/meta/uninative-tarball.bb @@ -5,15 +5,18 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d TOOLCHAIN_TARGET_TASK = "" +# ibm850 - mcopy from mtools +# iso8859-1 - guile TOOLCHAIN_HOST_TASK = "\ nativesdk-glibc \ nativesdk-glibc-gconv-ibm850 \ + nativesdk-glibc-gconv-iso8859-1 \ nativesdk-patchelf \ " INHIBIT_DEFAULT_DEPS = "1" -TOOLCHAIN_OUTPUTNAME ?= "${BUILD_ARCH}-nativesdk-libc" +TOOLCHAIN_OUTPUTNAME ?= "${SDK_ARCH}-nativesdk-libc" RDEPENDS = "${TOOLCHAIN_HOST_TASK}" @@ -43,9 +46,11 @@ fakeroot create_sdk_files() { fakeroot tar_sdk() { mkdir -p ${SDK_DEPLOY} cd ${SDK_OUTPUT}/${SDKPATH} - mv sysroots/${SDK_SYS} ./${BUILD_SYS} + + DEST="./${SDK_ARCH}-${SDK_OS}" + mv sysroots/${SDK_SYS} $DEST rm sysroots -rf - patchelf --set-interpreter ${@''.join('a' for n in xrange(1024))} ./${BUILD_SYS}/usr/bin/patchelf - mv ./${BUILD_SYS}/usr/bin/patchelf ./${BUILD_SYS}/usr/bin/patchelf-uninative + patchelf --set-interpreter ${@''.join('a' for n in xrange(1024))} $DEST/usr/bin/patchelf + mv $DEST/usr/bin/patchelf $DEST/usr/bin/patchelf-uninative tar ${SDKTAROPTS} -c -j --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 . } |