classes: Move package RDEPENDS processing out of debian.bbclass

INHERIT_DIRSTO by default includes debian.bbclass which in turn properly
establishes dependencies between package management tasks and build
process. Debian class also unconditionally renames several packages in a
Debian way. In order to allow disabling of such renaming rules, the logic
of RDEPENDS handling is moved to a package.bbclass.
This commit also solves the SDK building issue without debian.bbclass.

(From OE-Core rev: 8313a4201cde39c444aa6fbe82e46a767fc31f6b)

Signed-off-by: Sergei Zhmylev <s.zhmylev@yadro.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Sergei Zhmylev
2023-11-03 17:29:57 +03:00
committed by Richard Purdie
parent f1b0ab7e4b
commit 251a5c88f6
2 changed files with 22 additions and 16 deletions

View File

@@ -14,26 +14,14 @@
#
# Better expressed as ensure all RDEPENDS package before we package
# This means we can't have circular RDEPENDS/RRECOMMENDS
#
# Logic of processing dependencies moved to a package.bbclass to
# allow removing inheritance on debian.bbclass
AUTO_LIBNAME_PKGS = "${PACKAGES}"
inherit package
DEBIANRDEP = "do_packagedata"
do_package_write_ipk[deptask] = "${DEBIANRDEP}"
do_package_write_deb[deptask] = "${DEBIANRDEP}"
do_package_write_tar[deptask] = "${DEBIANRDEP}"
do_package_write_rpm[deptask] = "${DEBIANRDEP}"
do_package_write_ipk[rdeptask] = "${DEBIANRDEP}"
do_package_write_deb[rdeptask] = "${DEBIANRDEP}"
do_package_write_tar[rdeptask] = "${DEBIANRDEP}"
do_package_write_rpm[rdeptask] = "${DEBIANRDEP}"
python () {
if not d.getVar("PACKAGES"):
d.setVar("DEBIANRDEP", "")
}
python debian_package_name_hook () {
import glob, copy, stat, errno, re, pathlib, subprocess

View File

@@ -60,7 +60,6 @@ ALL_MULTILIB_PACKAGE_ARCHS = "${@all_multilib_tune_values(d, 'PACKAGE_ARCHS')}"
# dwarfsrcfiles is used to determine the list of debug source files
PACKAGE_DEPENDS += "rpm-native dwarfsrcfiles-native"
# If your postinstall can execute at rootfs creation time rather than on
# target but depends on a native/cross tool in order to execute, you need to
# list that tool in PACKAGE_WRITE_DEPS. Target package dependencies belong
@@ -614,3 +613,22 @@ python do_packagedata_setscene () {
}
addtask do_packagedata_setscene
# This part ensures all the runtime packages built by the time
# dynamic renaming occures, if any.
# This part moved here from debian.bbclass (see for reference) in
# order to allow disabling default inheritance on debian package renaming.
PKGRDEP = "do_packagedata"
do_package_write_ipk[deptask] = "${PKGRDEP}"
do_package_write_deb[deptask] = "${PKGRDEP}"
do_package_write_tar[deptask] = "${PKGRDEP}"
do_package_write_rpm[deptask] = "${PKGRDEP}"
do_package_write_ipk[rdeptask] = "${PKGRDEP}"
do_package_write_deb[rdeptask] = "${PKGRDEP}"
do_package_write_tar[rdeptask] = "${PKGRDEP}"
do_package_write_rpm[rdeptask] = "${PKGRDEP}"
python () {
if not d.getVar("PACKAGES"):
d.setVar("PKGRDEP", "")
}