From 0d0984e1e616c9f1c211b7b980ba2ca54c096e6e Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 9 Jan 2018 11:20:31 +0000 Subject: nativesdk/sdk: Update sdk dummy providers When we migrated rpm v5 -> v4, we lost the ability to drop "per file" dependencies from the rpm backend for things like "/bin/bash" and "/usr/bin/env" which meant the sdks were becomming 'bloated'. This restores the functionality using a dummy package, similarly to the way the buildtools perl issue was addressed. It also removes the non-functional old code so as not to confuse people in future. I ran into this problem trying to filter dependencies to only rpms a build directly depends upon and it turns out we have some determinism issues in this area so this is something key to fix. (From OE-Core rev: 9d490dc01dcedb216129b22cbe17a6c99efc4f5c) Signed-off-by: Richard Purdie --- meta/recipes-core/meta/dummy-sdk-package.inc | 24 +++++++++++++++++++ .../meta/nativesdk-buildtools-perl-dummy.bb | 27 +++++----------------- .../meta/nativesdk-sdk-provides-dummy.bb | 15 ++++++++++++ .../recipes-core/meta/target-sdk-provides-dummy.bb | 11 +++++++++ 4 files changed, 56 insertions(+), 21 deletions(-) create mode 100644 meta/recipes-core/meta/dummy-sdk-package.inc create mode 100644 meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb create mode 100644 meta/recipes-core/meta/target-sdk-provides-dummy.bb (limited to 'meta/recipes-core/meta') diff --git a/meta/recipes-core/meta/dummy-sdk-package.inc b/meta/recipes-core/meta/dummy-sdk-package.inc new file mode 100644 index 0000000000..ed83dd77da --- /dev/null +++ b/meta/recipes-core/meta/dummy-sdk-package.inc @@ -0,0 +1,24 @@ +SUMMARY = "Dummy packages which handle excluding packages from the sdk, e.g. ensuring perl is excluded from buildtools" +LICENSE = "MIT" + +inherit allarch + +python() { + # Put the package somewhere separate to ensure it's never used except + # when we want it + # (note that we have to do this in anonymous python here to avoid + # allarch.bbclass disabling itself) + d.setVar('PACKAGE_ARCH', '${DUMMYARCH}') +} + +ALLOW_EMPTY_${PN} = "1" + +PR[vardeps] += "DUMMYPROVIDES" + +python populate_packages_prepend() { + p = d.getVar("PN") + d.appendVar("RPROVIDES_%s" % p, "${DUMMYPROVIDES}") + #d.appendVar("RCONFLICTS_%s" % p, "${DUMMYPROVIDES}") + #d.appendVar("RREPLACES_%s" % p, "${DUMMYPROVIDES}") +} + diff --git a/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb b/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb index 0b58a027f3..f5bcb82548 100644 --- a/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb +++ b/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb @@ -1,26 +1,11 @@ -SUMMARY = "Dummy package which ensures perl is excluded from buildtools" -LICENSE = "MIT" +DUMMYARCH = "buildtools-dummy-${SDKPKGSUFFIX}" -inherit allarch +DUMMYPROVIDES = "\ + nativesdk-perl \ + nativesdk-perl-module-file-path" PR = "r2" -python() { - # Put the package somewhere separate to ensure it's never used except - # when we want it - # (note that we have to do this in anonymous python here to avoid - # allarch.bbclass disabling itself) - d.setVar('PACKAGE_ARCH', 'buildtools-dummy-${SDKPKGSUFFIX}') -} - -PERLPACKAGES = "nativesdk-perl \ - nativesdk-perl-module-file-path" - -ALLOW_EMPTY_${PN} = "1" - -python populate_packages_prepend() { - d.appendVar(d.expand('RPROVIDES_${PN}'), '${PERLPACKAGES}') - d.appendVar(d.expand('RCONFLICTS_${PN}'), '${PERLPACKAGES}') - d.appendVar(d.expand('RREPLACES_${PN}'), '${PERLPACKAGES}') -} +require dummy-sdk-package.inc +inherit nativesdk diff --git a/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb b/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb new file mode 100644 index 0000000000..11a727d486 --- /dev/null +++ b/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb @@ -0,0 +1,15 @@ +DUMMYARCH = "sdk-provides-dummy-${SDKPKGSUFFIX}" + +# Add /bin/sh? +DUMMYPROVIDES = "\ + /bin/bash \ + /usr/bin/env \ + /usr/bin/perl \ + pkgconfig \ + libGL.so()(64bit) \ + libGL.so \ +" + +require dummy-sdk-package.inc + +inherit nativesdk diff --git a/meta/recipes-core/meta/target-sdk-provides-dummy.bb b/meta/recipes-core/meta/target-sdk-provides-dummy.bb new file mode 100644 index 0000000000..714d15d8ba --- /dev/null +++ b/meta/recipes-core/meta/target-sdk-provides-dummy.bb @@ -0,0 +1,11 @@ +DUMMYARCH = "sdk-provides-dummy-target" + +DUMMYPROVIDES = "\ + /bin/sh \ + /bin/bash \ + /usr/bin/env \ + /usr/bin/perl \ + pkgconfig \ +" + +require dummy-sdk-package.inc -- cgit v1.2.3-54-g00ecf