diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-01-09 11:20:31 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-01-11 10:26:06 +0000 |
| commit | 0d0984e1e616c9f1c211b7b980ba2ca54c096e6e (patch) | |
| tree | 1dcc5055444c172a1f432c7e032f41027230ee8f /meta/recipes-core | |
| parent | 1117f74385fe60d7eaeaef13ce5927e4798d6992 (diff) | |
| download | poky-0d0984e1e616c9f1c211b7b980ba2ca54c096e6e.tar.gz | |
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 <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core')
5 files changed, 57 insertions, 21 deletions
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 @@ | |||
| 1 | SUMMARY = "Dummy packages which handle excluding packages from the sdk, e.g. ensuring perl is excluded from buildtools" | ||
| 2 | LICENSE = "MIT" | ||
| 3 | |||
| 4 | inherit allarch | ||
| 5 | |||
| 6 | python() { | ||
| 7 | # Put the package somewhere separate to ensure it's never used except | ||
| 8 | # when we want it | ||
| 9 | # (note that we have to do this in anonymous python here to avoid | ||
| 10 | # allarch.bbclass disabling itself) | ||
| 11 | d.setVar('PACKAGE_ARCH', '${DUMMYARCH}') | ||
| 12 | } | ||
| 13 | |||
| 14 | ALLOW_EMPTY_${PN} = "1" | ||
| 15 | |||
| 16 | PR[vardeps] += "DUMMYPROVIDES" | ||
| 17 | |||
| 18 | python populate_packages_prepend() { | ||
| 19 | p = d.getVar("PN") | ||
| 20 | d.appendVar("RPROVIDES_%s" % p, "${DUMMYPROVIDES}") | ||
| 21 | #d.appendVar("RCONFLICTS_%s" % p, "${DUMMYPROVIDES}") | ||
| 22 | #d.appendVar("RREPLACES_%s" % p, "${DUMMYPROVIDES}") | ||
| 23 | } | ||
| 24 | |||
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 @@ | |||
| 1 | SUMMARY = "Dummy package which ensures perl is excluded from buildtools" | 1 | DUMMYARCH = "buildtools-dummy-${SDKPKGSUFFIX}" |
| 2 | LICENSE = "MIT" | ||
| 3 | 2 | ||
| 4 | inherit allarch | 3 | DUMMYPROVIDES = "\ |
| 4 | nativesdk-perl \ | ||
| 5 | nativesdk-perl-module-file-path" | ||
| 5 | 6 | ||
| 6 | PR = "r2" | 7 | PR = "r2" |
| 7 | 8 | ||
| 8 | python() { | 9 | require dummy-sdk-package.inc |
| 9 | # Put the package somewhere separate to ensure it's never used except | ||
| 10 | # when we want it | ||
| 11 | # (note that we have to do this in anonymous python here to avoid | ||
| 12 | # allarch.bbclass disabling itself) | ||
| 13 | d.setVar('PACKAGE_ARCH', 'buildtools-dummy-${SDKPKGSUFFIX}') | ||
| 14 | } | ||
| 15 | |||
| 16 | PERLPACKAGES = "nativesdk-perl \ | ||
| 17 | nativesdk-perl-module-file-path" | ||
| 18 | |||
| 19 | ALLOW_EMPTY_${PN} = "1" | ||
| 20 | |||
| 21 | python populate_packages_prepend() { | ||
| 22 | d.appendVar(d.expand('RPROVIDES_${PN}'), '${PERLPACKAGES}') | ||
| 23 | d.appendVar(d.expand('RCONFLICTS_${PN}'), '${PERLPACKAGES}') | ||
| 24 | d.appendVar(d.expand('RREPLACES_${PN}'), '${PERLPACKAGES}') | ||
| 25 | } | ||
| 26 | 10 | ||
| 11 | 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 @@ | |||
| 1 | DUMMYARCH = "sdk-provides-dummy-${SDKPKGSUFFIX}" | ||
| 2 | |||
| 3 | # Add /bin/sh? | ||
| 4 | DUMMYPROVIDES = "\ | ||
| 5 | /bin/bash \ | ||
| 6 | /usr/bin/env \ | ||
| 7 | /usr/bin/perl \ | ||
| 8 | pkgconfig \ | ||
| 9 | libGL.so()(64bit) \ | ||
| 10 | libGL.so \ | ||
| 11 | " | ||
| 12 | |||
| 13 | require dummy-sdk-package.inc | ||
| 14 | |||
| 15 | 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 @@ | |||
| 1 | DUMMYARCH = "sdk-provides-dummy-target" | ||
| 2 | |||
| 3 | DUMMYPROVIDES = "\ | ||
| 4 | /bin/sh \ | ||
| 5 | /bin/bash \ | ||
| 6 | /usr/bin/env \ | ||
| 7 | /usr/bin/perl \ | ||
| 8 | pkgconfig \ | ||
| 9 | " | ||
| 10 | |||
| 11 | require dummy-sdk-package.inc | ||
diff --git a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb index aee4a03718..88e7c648b6 100644 --- a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb +++ b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb | |||
| @@ -25,6 +25,7 @@ RDEPENDS_${PN} = "\ | |||
| 25 | nativesdk-cmake \ | 25 | nativesdk-cmake \ |
| 26 | nativesdk-postinst-intercept \ | 26 | nativesdk-postinst-intercept \ |
| 27 | ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland', '', d)} \ | 27 | ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland', '', d)} \ |
| 28 | nativesdk-sdk-provides-dummy \ | ||
| 28 | " | 29 | " |
| 29 | 30 | ||
| 30 | RDEPENDS_${PN}_darwin = "\ | 31 | RDEPENDS_${PN}_darwin = "\ |
