[3/3] ref-manual: add migration info about MLPREFIX changes

Submitted by Paul Eggleton on Oct. 28, 2020, 11:36 a.m. | Patch ID: 177619


Message ID 56d81b92fd0667340158c42cde120f4409aa4678.1603884913.git.paul.eggleton@linux.microsoft.com
State New
Headers show

Commit Message

Paul Eggleton Oct. 28, 2020, 11:36 a.m.
From: Paul Eggleton <paul.eggleton@microsoft.com>

Add a migration subsection on the need to add MLPREFIX to conditional
package dependencies in gatesgarth.

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
 documentation/ref-manual/migration-3.2.rst | 31 ++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

Patch hide | download patch | download mbox

diff --git a/documentation/ref-manual/migration-3.2.rst b/documentation/ref-manual/migration-3.2.rst
index 3c0ea7b..b536f8e 100644
--- a/documentation/ref-manual/migration-3.2.rst
+++ b/documentation/ref-manual/migration-3.2.rst
@@ -75,6 +75,37 @@  pseudo will throw an ``abort()`` and direct you to a `wiki page <https://wiki.yo
 that explains how to deal with this.
+.. _migration-3.2-multilib-mlprefix:
+``MLPREFIX`` now required for multilib when runtime dependencies conditionally added
+In order to solve some previously intractable problems with runtime
+dependencies and multilib, a change was made that now requires the :term:`MLPREFIX`
+value to be explicitly prepended to package names being added as
+dependencies (e.g. in :term:`RDEPENDS` and :term:`RRECOMMENDS` values)
+where the dependency is conditionally added.
+If you have anonymous python or in-line python conditionally adding
+dependencies in your custom recipes, and you intend for those recipes to
+work with multilib, then you will need to ensure that ``${MLPREFIX}``
+is prefixed on the package names in the dependencies, for example
+(from the ``glibc`` recipe): ::
+    RRECOMMENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}"
+This also applies when conditionally adding packages to :term:`PACKAGES` where
+those packages have dependencies, for example (from the ``alsa-plugins`` recipe): ::
+    PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}"
+    ...
+    RDEPENDS_${PN}-pulseaudio-conf += "\
+            ${MLPREFIX}libasound-module-conf-pulse \
+            ${MLPREFIX}libasound-module-ctl-pulse \
+            ${MLPREFIX}libasound-module-pcm-pulse \
+    "
 .. _migration-3.2-packagegroup-core-device-devel:
 packagegroup-core-device-devel no longer included in images built for qemu* machines