Wind River Support Network

HomeDefectsLIN5-4976
Fixed

LIN5-4976 : Package RDEPENDS variables missing package name component

Created: Jun 12, 2013    Updated: Dec 19, 2017
Resolved Date: Sep 27, 2013
Found In Version: 5.0.1
Fix Version: 5.0.1.7,5.0.1.7
Severity: Standard
Applicable for: Wind River Linux 5
Component/s: Userspace

Description

Customer noticed that the RPM file for the vsftpd package did not list the required dependencies. After investigating the bb file he discovered the RDEPENDS variable did not include the package name, i.e. it says this:

RDEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}"

However, according to the Yocto documentation all R* variables (RDEPENDS, RRECOMMENDS, etc) should include the package name as follows:

RDEPENDS_${PN} += "${@base_contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}"

Fixing this resulted in the RPM file correctly indicating the required dependencies.

A quick scan through the various layers indicates that many packages have this problem.

Workaround

Edit the bb files to add the _${PN} component.

Steps to Reproduce

1. configure a project, extracting all layers
2. A simple grep as follows indicates many RDEPENDS exist without the package name:

$ find . -name '*\.bb*' -exec grep "RDEPENDS " {} \; -print
RDEPENDS = "python python-subprocess python-textutils"
./oe-core/meta/recipes-rt/rt-tests/hwlatdetect_0.84.bb
RDEPENDS = "udev"
./oe-core/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
RDEPENDS = "busybox"
./oe-core/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
RDEPENDS = "${TOOLCHAIN_HOST_TASK}"
./oe-core/meta/recipes-core/meta/external-python-tarball.bb
MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
./oe-core/meta/recipes-core/tasks/task-base.bb
MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
./oe-core/meta/recipes-core/tasks/task-core-boot.bb
RDEPENDS += "perl-module-extutils-makemaker"
./oe-core/meta/recipes-extended/perl/libxml-sax-base-perl_1.08.bb
SCRIPTING_RDEPENDS = "${@perf_feature_enabled('perf-scripting', 'perl perl-modules python', '',d)}"
./oe-core/meta/recipes-kernel/perf/perf_3.4.bb
SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
./oe-core/meta/classes/populate_sdk_base.bbclass
__recipe_sanity_badruntimevars = "RDEPENDS RPROVIDES RRECOMMENDS RCONFLICTS"
./oe-core/meta/classes/recipe_sanity.bbclass
            # RDEPENDS setup
./oe-core/meta/classes/update-alternatives.bbclass
RDEPENDS += "python-sip"
./oe-core/meta/classes/sip.bbclass
RDEPENDS += "${IMAGE_INSTALL} ${LINGUAS_INSTALL} ${NORMAL_FEATURE_INSTALL} ${ROOTFS_BOOTSTRAP_INSTALL}"
./oe-core/meta/classes/image.bbclass
RDEPENDS  += "${@["perl", ""][(bb.data.inherits_class('native', d))]}"
./oe-core/meta/classes/cpan-base.bbclass
        # RDEPENDS setup
    # Add the user/group preinstall scripts and RDEPENDS requirements
./oe-core/meta/classes/useradd.bbclass
    based on the RDEPENDS of *all* other packages. If more than one of a given
    suffix is specified, its will only use the RDEPENDS of the single parent
PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR"
./oe-core/meta/classes/package.bbclass
# Better expressed as ensure all RDEPENDS package before we package
./oe-core/meta/classes/debian.bbclass
        f.write("RDEPENDS = %s\n" %  pkginfo.rdepends)
./oe-core/meta/classes/buildhistory.bbclass
RDEPENDS = "automake pkgconfig"
./oe-core/meta/recipes-devtools/autogen/autogen-native_5.12.bb
MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
./wr-base/recipes-base/tasks/task-wr-boot.bb
RDEPENDS = "mdadm"
./wr-base/recipes-support/ssiapi/ssiapi_1.0.1.bb
RDEPENDS = "fbset"
./wr-base/recipes-bsp/formfactor/formfactor_0.0.bbappend
RDEPENDS += "mingetty"
./wr-base/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bbappend
RDEPENDS = "logrotate"
./wr-base/recipes-extended/sysklogd/sysklogd_1.5.bbappend
RDEPENDS = "ltp-testsuite open-posix-testsuite expect python python-textutils binutils"
./wr-base/recipes-extended/windriver-ltp/ltp_git.bb
RDEPENDS += "sed"
./wr-base/recipes-extended/groff/groff_1.20.1.bbappend
        # RDEPENDS setup
    # Add the user/group preinstall scripts and RDEPENDS requirements
./wr-base/classes/useradd.bbclass
RDEPENDS = "elfutils"
./wr-base/recipes-devtools/ltrace/ltrace_git.bb
RDEPENDS += "tcl libgcc"
./wr-base/recipes-devtools/expect/expect_5.45.bb
RDEPENDS = "dmidecode"
./wr-kernel/recipes-support/edac-utils/edac-utils_0.16.bb
RDEPENDS = "mcelog mce-inject dialog"
./wr-kernel/recipes-kernel/mce-test/mce-test_git.bb
RDEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}"
./wr-features/recipes-networking/vsftpd/vsftpd_3.0.0.bb
Binary file ./wr-features/recipes-networking/vsftpd/.vsftpd_3.0.0.bb.swp matches
./wr-features/recipes-networking/vsftpd/.vsftpd_3.0.0.bb.swp
RDEPENDS = "libdigest-hmac-perl"
./wr-features/recipes-networking/perl/libauthen-sasl-perl_2.15.bb
RDEPENDS = "unixodbc libmysqlclient-r mysql5"
./wr-features/recipes-support/mysql-connector-odbc/mysql-connector-odbc_5.1.6.bb
RDEPENDS += "perl-module-extutils-makemaker"
./wr-features/recipes-devtools/perl/libxml-sax-base-perl_1.08.bb

Other Downloads


Live chat
Online