Rework initscripts-functions dependency issue
cover Rework initscripts-functions dependency issue
The following changes since commit c36607b62fa7eef5d0494df5aa77666605559723:
Revert "e2fsprogs/populate-extfs.sh: fix a problem on dash" (2014-01-23 10:29:32 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib ChenQi/initscripts-functions-rework
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=ChenQi/initscripts-functions-rework
Chen Qi (4):
Revert "Add missing RDEPENDS of initscripts-functions" update-rc.d: automatically rdepend on initscripts-funtions
sysvinit: add initscripts-functions to RDEPENDS
initscripts: add initscripts-functions-dev package
meta/classes/update-rc.d.bbclass | 12 ++++++++++++ meta/recipes-bsp/alsa-state/alsa-state.bb | 2 +- meta/recipes-bsp/apmd/apmd_3.2.2-14.bb | 1 - .../irda-utils/irda-utils_0.9.18.bb | 2 -- .../nfs-utils/nfs-utils_1.2.9.bb | 4 ++-- meta/recipes-connectivity/openssh/openssh_6.4p1.bb | 2 +- meta/recipes-connectivity/ppp/ppp_2.4.5.bb | 1 - meta/recipes-core/dbus/dbus.inc | 2 +- meta/recipes-core/initscripts/initscripts_1.0.bb | 4 +++- meta/recipes-core/systemd/systemd_208.bb | 2 +- meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb | 4 ++-- meta/recipes-devtools/distcc/distcc_3.1.bb | 1 - meta/recipes-devtools/tcf-agent/tcf-agent_git.bb | 2 +- meta/recipes-extended/at/at_3.1.14.bb | 3 ++- meta/recipes-extended/cronie/cronie_1.4.11.bb | 2 -- meta/recipes-extended/rpcbind/rpcbind_0.2.1.bb | 2 -- meta/recipes-extended/sysklogd/sysklogd.inc | 2 -- meta/recipes-extended/xinetd/xinetd_2.3.15.bb | 1 - .../oprofile/oprofileui-server_git.bb | 2 +- 19 files changed, 27 insertions(+), 24 deletions(-)
Signature · 1 line
1.7.9.5
PATCH 1/4 Revert "Add missing RDEPENDS of initscripts-functions"
Instead of manually adding initscripts to RDEPENDS of each package, we should make it automatically handled by the update-rc.d.bbclass. This solution would have the benefit of backward compatibility. In other words, users need not modify their recipes.
This reverts commit 16080a3485bd793edd66ed8361f1e8b86a9e19ea.
--- meta/recipes-bsp/alsa-state/alsa-state.bb | 2 +- meta/recipes-bsp/apmd/apmd_3.2.2-14.bb | 1 - .../irda-utils/irda-utils_0.9.18.bb | 2 -- .../nfs-utils/nfs-utils_1.2.9.bb | 4 ++-- meta/recipes-connectivity/openssh/openssh_6.4p1.bb | 2 +- meta/recipes-connectivity/ppp/ppp_2.4.5.bb | 1 - meta/recipes-core/dbus/dbus.inc | 2 +- meta/recipes-core/systemd/systemd_208.bb | 2 +- meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb | 2 +- meta/recipes-devtools/distcc/distcc_3.1.bb | 1 - meta/recipes-devtools/tcf-agent/tcf-agent_git.bb | 2 +- meta/recipes-extended/at/at_3.1.14.bb | 3 ++- meta/recipes-extended/cronie/cronie_1.4.11.bb | 2 -- meta/recipes-extended/rpcbind/rpcbind_0.2.1.bb | 2 -- meta/recipes-extended/sysklogd/sysklogd.inc | 2 -- meta/recipes-extended/xinetd/xinetd_2.3.15.bb | 1 - .../oprofile/oprofileui-server_git.bb | 2 +- 17 files changed, 11 insertions(+), 22 deletions(-)
meta/recipes-bsp/alsa-state/alsa-state.bb +1 -1
@@ -37,7 +37,7 @@ PACKAGES += "alsa-states" RRECOMMENDS_alsa-state = "alsa-states" -RDEPENDS_${PN} = "alsa-utils-alsactl initscripts-functions" +RDEPENDS_${PN} = "alsa-utils-alsactl" FILES_${PN} = "${sysconfdir}/init.d ${sysconfdir}/asound.conf" CONFFILES_${PN} = "${sysconfdir}/asound.conf"
meta/recipes-bsp/apmd/apmd_3.2.2-14.bb +0 -1
@@ -8,7 +8,6 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ file://apm.h;beginline=6;endline=18;md5=7d4acc1250910a89f84ce3cc6557c4c2" DEPENDS = "libtool-cross" -RDEPENDS_${PN} = "initscripts-functions" PR = "r2" SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_3.2.2.orig.tar.gz;name=tarball \
meta/recipes-connectivity/irda-utils/irda-utils_0.9.18.bb +0 -2
@@ -24,8 +24,6 @@ inherit autotools update-rc.d INITSCRIPT_NAME = "irattach" INITSCRIPT_PARAMS = "defaults 20" -RDEPENDS_${PN} += "initscripts-functions" - do_compile () { oe_runmake -e -C irattach oe_runmake -e -C irdaping
meta/recipes-connectivity/nfs-utils/nfs-utils_1.2.9.bb +2 -2
@@ -9,8 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" # util-linux for libblkid DEPENDS = "libcap libnfsidmap libevent util-linux sqlite3" -RDEPENDS_${PN}-client = "rpcbind bash initscripts-functions" -RDEPENDS_${PN} = "${PN}-client bash initscripts-functions" +RDEPENDS_${PN}-client = "rpcbind bash" +RDEPENDS_${PN} = "${PN}-client bash" RRECOMMENDS_${PN} = "kernel-module-nfsd" inherit useradd
meta/recipes-connectivity/openssh/openssh_6.4p1.bb +1 -1
@@ -122,7 +122,7 @@ FILES_${PN}-misc = "${bindir}/ssh* ${libexecdir}/ssh*" FILES_${PN}-keygen = "${bindir}/ssh-keygen" RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen" -RDEPENDS_${PN}-sshd += "${PN}-keygen initscripts-functions" +RDEPENDS_${PN}-sshd += "${PN}-keygen" CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config" CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config"
meta/recipes-connectivity/ppp/ppp_2.4.5.bb +0 -1
@@ -5,7 +5,6 @@ SECTION = "console/network" HOMEPAGE = "http://samba.org/ppp/" BUGTRACKER = "http://ppp.samba.org/cgi-bin/ppp-bugs" DEPENDS = "libpcap" -RDEPENDS_${PN} = "initscripts-functions" LICENSE = "BSD & GPLv2+ & LGPLv2+ & PD" LIC_FILES_CHKSUM = "file://pppd/ccp.c;beginline=1;endline=29;md5=e2c43fe6e81ff77d87dc9c290a424dea \ file://pppd/plugins/passprompt.c;beginline=1;endline=10;md5=3bcbcdbf0e369c9a3e0b8c8275b065d8 \
meta/recipes-core/dbus/dbus.inc +1 -1
@@ -6,7 +6,7 @@ LICENSE = "AFL-2 | GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \ file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c" DEPENDS = "expat virtual/libintl" -RDEPENDS_dbus = "${@base_contains('DISTRO_FEATURES', 'ptest', 'dbus-ptest-ptest', '', d)} initscripts-functions" +RDEPENDS_dbus = "${@base_contains('DISTRO_FEATURES', 'ptest', 'dbus-ptest-ptest', '', d)}" RDEPENDS_dbus_class-native = "" RDEPENDS_dbus_class-nativesdk = ""
meta/recipes-core/systemd/systemd_208.bb +1 -1
@@ -229,7 +229,7 @@ PACKAGES =+ "udev-dbg udev udev-utils udev-hwdb" FILES_udev-dbg += "/lib/udev/.debug" -RDEPENDS_udev += "udev-utils initscripts-functions" +RDEPENDS_udev += "udev-utils" RPROVIDES_udev = "hotplug" RRECOMMENDS_udev += "udev-hwdb"
meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb +1 -1
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ file://COPYRIGHT;endline=15;md5=349c872e0066155e1818b786938876a4" PR = "r11" -RDEPENDS_${PN} = "${PN}-inittab initscripts-functions" +RDEPENDS_${PN} = "${PN}-inittab" SRC_URI = "http://download.savannah.gnu.org/releases-noredirect/sysvinit/sysvinit-${PV}.tar.bz2 \ file://install.patch \
meta/recipes-devtools/distcc/distcc_3.1.bb +0 -1
@@ -6,7 +6,6 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = "avahi" -RDEPENDS_${PN} = "initscripts-functions" GTKCONFIG = "gtk" GTKCONFIG_libc-uclibc = ""
meta/recipes-devtools/tcf-agent/tcf-agent_git.bb +1 -1
@@ -15,7 +15,7 @@ SRC_URI = "git://git.eclipse.org/gitroot/tcf/org.eclipse.tcf.agent.git \ " DEPENDS = "util-linux openssl" -RDEPENDS_${PN} = "bash initscripts-functions" +RDEPENDS_${PN} = "bash" S = "${WORKDIR}/git"
meta/recipes-extended/at/at_3.1.14.bb +2 -1
@@ -7,8 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4" DEPENDS = "flex flex-native \ ${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +VIRTUAL-RUNTIME_initscripts ?= "initscripts" RDEPENDS_${PN} = "${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_DEPS}', '', d)} \ - initscripts-functions \ + ${VIRTUAL-RUNTIME_initscripts} \ " PAM_DEPS = "libpam libpam-runtime pam-plugin-env pam-plugin-limits"
meta/recipes-extended/cronie/cronie_1.4.11.bb +0 -2
@@ -39,8 +39,6 @@ PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,${PAM_DEPS}" INITSCRIPT_NAME = "crond" INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 60 0 1 6 ." -RDEPENDS_${PN} = "initscripts-functions" - USERADD_PACKAGES = "${PN}" GROUPADD_PARAM_${PN} = "--system crontab"
meta/recipes-extended/rpcbind/rpcbind_0.2.1.bb +0 -2
@@ -33,8 +33,6 @@ PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers" INITSCRIPT_NAME = "rpcbind" INITSCRIPT_PARAMS = "start 12 2 3 4 5 . stop 60 0 1 6 ." -RDEPENDS_${PN} = "initscripts-functions" - SYSTEMD_SERVICE_${PN} = "rpcbind.service" SYSTEMD_AUTO_ENABLE = "disable"
meta/recipes-extended/sysklogd/sysklogd.inc +0 -2
@@ -24,8 +24,6 @@ SRC_URI_append_e500v2 = " file://no-vectorization.patch" INITSCRIPT_NAME = "syslog" CONFFILES_${PN} = "${sysconfdir}/syslog.conf.${BPN}" -RDEPENDS_${PN} = "initscripts-functions" - CFLAGS_append = " -DSYSV" do_install () {
meta/recipes-extended/xinetd/xinetd_2.3.15.bb +0 -1
@@ -7,7 +7,6 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=8ad8615198542444f84d28a6cf226dd8" DEPENDS = "" -RDEPENDS_${PN} = "initscripts-functions" PR = "r2" SRC_URI = "http://www.xinetd.org/xinetd-${PV}.tar.gz \
meta/recipes-kernel/oprofile/oprofileui-server_git.bb +1 -1
@@ -11,7 +11,7 @@ SRC_URI = "git://git.yoctoproject.org/oprofileui \ EXTRA_OECONF += "--disable-client --enable-server" -RDEPENDS_${PN} = "oprofile initscripts-functions" +RDEPENDS_${PN} = "oprofile" do_install_append() { install -d ${D}${sysconfdir}/init.d
Signature · 1 line
1.7.9.5
PATCH 2/4 update-rc.d: automatically rdepend on initscripts-funtions
In reply to Chen QiAutomatically add 'initscripts-functions' to packages when needed.
This extra dependency is added only when the package's init script would be used at system start-up. In other words, in a systemd based image, if the package has already got its service files, it will not have this extra dependency.
--- meta/classes/update-rc.d.bbclass | 12 ++++++++++++ 1 file changed, 12 insertions(+)
meta/classes/update-rc.d.bbclass +12 -0
@@ -71,6 +71,16 @@ PACKAGESPLITFUNCS_prepend = "populate_packages_updatercd " populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_preinst updatercd_postinst" python populate_packages_updatercd () { + def update_rcd_auto_depend(pkg): + import subprocess + import os + path = d.expand("${D}${INIT_D_DIR}/${INITSCRIPT_NAME}") + if not os.path.exists(path): + return + statement = "grep -q -w '/etc/init.d/functions' %s" % path + if subprocess.call(statement, shell=True) == 0: + d.appendVar('RDEPENDS_' + pkg, ' initscripts-functions') + def update_rcd_package(pkg): bb.debug(1, 'adding update-rc.d calls to preinst/postinst/prerm/postrm for %s' % pkg)
@@ -79,6 +89,8 @@ python populate_packages_updatercd () { localdata.setVar("OVERRIDES", "%s:%s" % (pkg, overrides)) bb.data.update_data(localdata) + update_rcd_auto_depend(pkg) + preinst = d.getVar('pkg_preinst_%s' % pkg, True) if not preinst: preinst = '#!/bin/sh\n'
Signature · 1 line
1.7.9.5
PATCH 3/4 sysvinit: add initscripts-functions to RDEPENDS
In reply to Chen QiAs sysvinit doesn't inherit update-rc.d, we need to add this dependency manually.
--- meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb +1 -1
@@ -61,7 +61,7 @@ FILES_${PN} += "${base_sbindir}/* ${base_bindir}/*" FILES_sysvinit-pidof = "${base_bindir}/pidof.sysvinit ${base_sbindir}/killall5" FILES_sysvinit-sulogin = "${base_sbindir}/sulogin.sysvinit" -RDEPENDS_${PN} += "sysvinit-pidof" +RDEPENDS_${PN} += "sysvinit-pidof initscripts-functions" CFLAGS_prepend = "-D_GNU_SOURCE " export LCRYPT = "-lcrypt"
Signature · 1 line
1.7.9.5
PATCH 4/4 initscripts: add initscripts-functions-dev package
In reply to Chen QiAdd initscripts-functions-dev package to avoid initscripts package being installed unexpected via the dependency of initscripts-dev package.
Before this patch, if we have 'dev-pkgs' in IMAGE_FEATURES, the initscripts package would be installed once the initscripts-functions package is installed, which is not what we need.
--- meta/recipes-core/initscripts/initscripts_1.0.bb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
meta/recipes-core/initscripts/initscripts_1.0.bb +3 -1
@@ -42,9 +42,11 @@ KERNEL_VERSION = "" inherit update-alternatives DEPENDS_append = " update-rc.d-native" -PACKAGES =+ "${PN}-functions" +PACKAGES =+ "${PN}-functions ${PN}-functions-dev" RDEPENDS_${PN} = "${PN}-functions" FILES_${PN}-functions = "${sysconfdir}/init.d/functions*" +RDEPENDS_${PN}-functions-dev += "${PN}-functions" +ALLOW_EMPTY_${PN}-functions-dev = "1" ALTERNATIVE_PRIORITY_${PN}-functions = "90" ALTERNATIVE_${PN}-functions = "functions"
Signature · 1 line
1.7.9.5