[OE-core] [PATCH] update-rc.d.bbclass: remove preinst and remove -f for postinst
Changqing Li
changqing.li at windriver.com
Wed Feb 27 06:43:50 UTC 2019
ping
On 12/27/18 11:02 AM, Changqing Li wrote:
> ping
>
> On 11/9/18 5:42 PM, changqing.li at windriver.com wrote:
>> From: Changqing Li <changqing.li at windriver.com>
>>
>> *preinst use "-f remove" to remove any links in the /etc/rcrunlevel.d
>> but this will make user cannot keep previous config by default after
>> upgrade
>>
>> eg: user disable one service before upgrade, after upgrade, service
>> could be started since during preinst, all link have been deleted, so
>> postinst may create the link to start service.
>>
>> remove preinst to keep previous links, so that after upgrade, if any
>> link existed for the package, postinst will not create new start/stop
>> links.
>>
>> (note: patch of support enable/disable function of update-rc.d send
>> to yocto mail list today)
>>
>> *remove -f for postinst, previously, recipe keepalived use remove during
>> postinst, so need this -f, but remove in postinst is not proper,
>> recipe
>> keepalived have fixed this problem, so remove -f.
>>
>> Signed-off-by: Changqing Li <changqing.li at windriver.com>
>> ---
>> meta/classes/update-rc.d.bbclass | 28 ++++------------------------
>> 1 file changed, 4 insertions(+), 24 deletions(-)
>>
>> diff --git a/meta/classes/update-rc.d.bbclass
>> b/meta/classes/update-rc.d.bbclass
>> index 265c4be..1366fee 100644
>> --- a/meta/classes/update-rc.d.bbclass
>> +++ b/meta/classes/update-rc.d.bbclass
>> @@ -20,28 +20,14 @@ def use_updatercd(d):
>> return '[ -n "$D" -o ! -d /run/systemd/system ]'
>> return 'true'
>> -updatercd_preinst() {
>> -if ${@use_updatercd(d)} && [ -z "$D" -a -f
>> "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then
>> - ${INIT_D_DIR}/${INITSCRIPT_NAME} stop || :
>> -fi
>> -if ${@use_updatercd(d)} && type update-rc.d >/dev/null 2>/dev/null;
>> then
>> - if [ -n "$D" ]; then
>> - OPT="-f -r $D"
>> - else
>> - OPT="-f"
>> - fi
>> - update-rc.d $OPT ${INITSCRIPT_NAME} remove
>> -fi
>> -}
>> -
>> PACKAGE_WRITE_DEPS += "update-rc.d-native"
>> updatercd_postinst() {
>> if ${@use_updatercd(d)} && type update-rc.d >/dev/null 2>/dev/null;
>> then
>> if [ -n "$D" ]; then
>> - OPT="-f -r $D"
>> + OPT="-r $D"
>> else
>> - OPT="-f -s"
>> + OPT="-s"
>> fi
>> update-rc.d $OPT ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS}
>> fi
>> @@ -79,7 +65,7 @@ python __anonymous() {
>> PACKAGESPLITFUNCS_prepend =
>> "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit',
>> 'populate_packages_updatercd ', '', d)}"
>> PACKAGESPLITFUNCS_remove_class-nativesdk =
>> "populate_packages_updatercd "
>> -populate_packages_updatercd[vardeps] += "updatercd_prerm
>> updatercd_postrm updatercd_preinst updatercd_postinst"
>> +populate_packages_updatercd[vardeps] += "updatercd_prerm
>> updatercd_postrm updatercd_postinst"
>> populate_packages_updatercd[vardepsexclude] += "OVERRIDES"
>> python populate_packages_updatercd () {
>> @@ -95,7 +81,7 @@ python populate_packages_updatercd () {
>> d.appendVar('RDEPENDS_' + pkg, ' %sinitd-functions' %
>> (mlprefix))
>> def update_rcd_package(pkg):
>> - bb.debug(1, 'adding update-rc.d calls to
>> preinst/postinst/prerm/postrm for %s' % pkg)
>> + bb.debug(1, 'adding update-rc.d calls to
>> postinst/prerm/postrm for %s' % pkg)
>> localdata = bb.data.createCopy(d)
>> overrides = localdata.getVar("OVERRIDES")
>> @@ -103,12 +89,6 @@ python populate_packages_updatercd () {
>> update_rcd_auto_depend(pkg)
>> - preinst = d.getVar('pkg_preinst_%s' % pkg)
>> - if not preinst:
>> - preinst = '#!/bin/sh\n'
>> - preinst += localdata.getVar('updatercd_preinst')
>> - d.setVar('pkg_preinst_%s' % pkg, preinst)
>> -
>> postinst = d.getVar('pkg_postinst_%s' % pkg)
>> if not postinst:
>> postinst = '#!/bin/sh\n'
>
--
BRs
Sandy(Li Changqing)
More information about the Openembedded-core
mailing list